700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 京东校招java工程师_京东校招Java研发笔试编程第1题

京东校招java工程师_京东校招Java研发笔试编程第1题

时间:2019-03-16 09:05:59

相关推荐

京东校招java工程师_京东校招Java研发笔试编程第1题

笔试的时候,最后因为没有约分,结果线上编译总是过不了,好可惜~

package com.bjut.SaiMa.JingDong;

import java.util.ArrayList;

import java.util.Scanner;

public class Main {

/**/9/5

* 给一个数N,计算N变换成2到N-1进制的数字的和的平均值。

* 比如:N=4,

* N,2进制:100,数字和为1

* N,3进制:11,数字和为2

* 那么,计算结果=(1+2)÷2 = 3/2

*

* */

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

while (in.hasNextInt()) {

ArrayListarray = new ArrayList();

array.add(in.nextInt());

for (int i = 0; i < array.size(); i++) {

int result = 0;//所有2到n-1进制的各位数和

int max = array.get(i); //表示n

for (int j = 2; j < array.get(i); j++) {

int temp = j;

int temp1 = 0;

//求对应进制的各位数,相除取余

while (temp >= j) {

temp1 += max % j;

temp = temp / j;

}

temp1 += temp;

result += temp1;

}

//辗转相除法求最大公约数为temp

int a = result;

int b = array.get(i) - 2;

int temp = 0;

while (a % b != 0) {

temp = a % b;

a = b;

b = temp;

}

System.out.println(result/temp+"/"+(array.get(i)-2)/temp);

}

}

}

}

辗转相除法在牛客上的华为在线编程最后一题刷过。如下:

求最小公倍数

热度指数:1713时间限制:1秒空间限制:32768K

算法知识视频讲解

题目描述

正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数。

输入例子:

5

7

输出例子:

35

package com.bjut.NewCoder_HuaWei;

import java.util.Scanner;

public class HuaWei108 {

/**

* [编程题]求最小公倍数

*

* 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

*

* 输入描述:输入两个正整数A和B。

* 输出描述:输出A和B的最小公倍数。

*

* 总结:【辗转相除法】效率高

*

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in = new Scanner(System.in);

while (in.hasNext()) {

int A = in.nextInt();

int B = in.nextInt();

//最小公倍数 = 两数之积除以最大公约数

//辗转相除法求最大公约数(效率高)

int A1 = A, B1 = B;

int temp = 1;

while ((temp = A % B) > 0) {

A = B;

B = temp;

}

System.out.println(A1 * B1 / B);

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。