提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
1.奇数倍数
上题目:
由题目不难理解:2019n后,它的每一个数值都是奇数,那么我们只需要进行一次循环,然后每一个2019n都对它进行每一位数判断是否为奇数,有一个数为偶数就跳转至下一次(减少次数)
同时,因为任意正整数*偶数都为偶,那么2019乘的数应该是一个奇数,代码如下:
public class 奇数倍数 {
public static void main(String[] args) {
int n=2019,s,t;
for (int i=3;;i+=2){
s=n*i;
t=0;
while (s>0){
if ((s%10)%2==0) {
t=1;
break;
}
else
s/=10;
}
if (t==0){
System.out.println(n*i);
break;
}
}
}
}
答案:139311
2.第几个幸运数字
上题目:
它题目给的那一串3579152125273545实际上是
3 5 7 9 15 21 25 27 35 45这十个数字
因为因子只有3/5/7,所以三重循环,每一重为0-n,分别表示3/5/7的次方数,然后再将他们相乘得最终结果(为什么从0开始呢,因为每一个数的0次为1,相乘无差别,就相当于纯某个数的n次)
代码如下:
public class 第几个幸运数字 {
public static void main(String[] args) {
long n= 59084709587505L;
int m=0;
for (int i=0;Math.pow(7,i)<n;i++){
for (int j=0;Math.pow(5,j)<n;j++){
for (int k=0;Math.pow(3,k)<n;k++){
if (Math.pow(7,i)*Math.pow(5,j)*Math.pow(3,k)<n) {
m++;
}
}
}
}
System.out.println(m);
}
}
答案:1905
3.四平方和
上题目:
先解释一下题意吧:
把一个数n,分解成aa+bb+cc+dd,然后要求a最小,b第二小,c第三小,d最大
即:n=aa+bb+cc+dd,且a<=b<=c<=d,然后输出的时候,要输出a最小的情况
比如9:00+00+00+33是它的最小情况,虽然还有00+11+22+22
但是字典序分别为0003和0122,显然0003更小
那这题我们需要判断四个数,那么四重循环是可以获得结果的(但是超时了)
所以,最后一个循环,我们将它改为判断,判断它开方后是否为整数
也就是三次循环,三次循环结果是可以通过的
代码如下:
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for (int i=0;i<=Math.sqrt(n);i++){
for (int j=i;j<=Math.sqrt(n-i*i);j++){
for (int k=j;k<=Math.sqrt(n-i*i-j*j);k++){
if (Math.sqrt(n-i*i-j*j-k*k)==(int)Math.sqrt(n-i*i-j*j-k*k)) {
System.out.println(i + " " + j + " " + k + " " +
(int)Math.sqrt(n-i*i-j*j-k*k));
return;
}
}
}
}
4.迷宫
这题,能力有限,手推出来的,代码不会写,看了别人的代码还是不会写。。。。。。
答案:DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR
版权归原作者 小怂很怂 所有, 如有侵权,请联系我们删除。