四川建筑人才招聘网,南昌网站优化,汽车网址排行榜,有没有可以在线做化学实验的网站目录
题目1#xff1a;打印1~100内奇数和、偶数和
题目2#xff1a;计算5的阶乘
题目3#xff1a;计算 1!2!3!4!5! 的和
题目4#xff1a;找1~100之间即能被3整除#xff0c;又能被5整除的数字#xff0c;要求必须使用break/continue
题目5#xff1a;实现猜数字小…
目录
题目1打印1~100内奇数和、偶数和
题目2计算5的阶乘
题目3计算 1!2!3!4!5! 的和
题目4找1~100之间即能被3整除又能被5整除的数字要求必须使用break/continue
题目5实现猜数字小游戏(不需要菜单)
题目6判断一个整数是否为素数
题目7 打印1~100之间的所有素数
题目8输出1000~2000之间所有的闰年
题目9输出乘法口诀表
题目10求两个正整数的最大公约数
题目11求0~99999之间的水仙花数并输出
题目12写一个函数返回参数在内存中二进制形式1的个数 题目1打印1~100内奇数和、偶数和
思路先利用循环得到1~100之间的数判断如果i是奇数则sumOddi如果i为偶数则sumEveni结束循环后在屏幕上打印结果即可。
public static void main(String[] args) {int i 1;int sumOdd 0;//奇数int sumEven 0;//偶数while (i 100) {if (i % 2 1) {sumOdd i;} else {sumEven i;}i;}System.out.println(奇数和sumOdd);System.out.println(偶数和sumEven);}
题目2计算5的阶乘
思路5为1*2*3*4*5将循环变量设为i进入循环的条件设置为i5在循环里面进行mul*i的操作(别忘了调整循环变量i的大小)结束循环后在屏幕上打印结果即可。
public static void main(String[] args) {int i 1;int mul 1;while (i 5) {mul * i;i;}System.out.println(mul);}
题目3计算 1!2!3!4!5! 的和
思路求一个数的阶乘好求如果要求不同数的阶乘我们也可以直接利用求一个数阶乘的方法在它的外面加上一层循环即变量即j表示求几的阶乘而原本阶乘方法中的循环的条件改为与 j 相关循环全部结束后在屏幕上打印结果即可。
public static void main(String[] args) {int j 1;int sum 0;while (j 5) {int i 1;int mul 1;while (i j) {mul * i;i;}sum mul;j;}System.out.println(sum);}
题目4找1~100之间即能被3整除又能被5整除的数字要求必须使用break/continue
思路它们的最小公倍数是15也就是说只要是15的倍数都能被它两整除可以先利用循环得到1~100之间的数然后判断i%15是否0不是则i使用continue不执行后面打印的功能是则直接打印然后i
public static void main(String[] args) {int i 1;while (i 100) {if (i % 15 ! 0) {i;continue;}System.out.println(i);i;}}
题目5实现猜数字小游戏(不需要菜单)
思路随机数的生成要用到 Random random new Random(); 得到的随机数写成 int randNum random.nextInt(100); 的格式在()写入n就生成 [0,n-1) 之间的数。为了多次猜测所以用到了while(true)在while内部进行游戏判断的过程即可如果猜对了用break跳出循环即可。
public static void main(String[] args) {Scanner scan new Scanner(System.in);Random random new Random();int randNum random.nextInt(100);//[0,100)System.out.println(随机数是randNum);while (true) {System.out.print(请输入);int num scan.nextInt();if (num randNum) {System.out.println(猜小了);} else if (num randNum) {System.out.println(猜对了);break;} else {System.out.println(猜大了);}}}
题目6判断一个整数是否为素数
思路首先了解什么是素数素数是大于1的自然数且只能被1或它本身整除
技巧构成num的两个数一定有一个小于等于num开平方因此在写除数时不用写成 i num直接写成 i Math.sqrt(num)如果num被i整除则break说明num肯定不是素数。注意出for循环后会有两种情况一种是通过break出来的另一种是循环结束出来的因此要判断一下是哪一种情况出来的。
public static void main(String[] args) {Scanner scan new Scanner(System.in);int num scan.nextInt();int i 0;for (i 2; i Math.sqrt(num); i) {if (num % i 0) {break;//说明不是素数}}if (i Math.sqrt(num)) {System.out.println(num是素数);} else {System.out.println(num不是素数);}}
题目7 打印1~100之间的所有素数
思路在上面判断是否为素数的基础上加一层循环得到2~100之间的数将上面代码中的num替换乘i即可。
public static void main(String[] args) {for (int i 2; i 101; i) {int j 0;for (j 2; j Math.sqrt(i) ; j) {if (i % j 0) {break;}}if (j Math.sqrt(i)) {System.out.println(i是素数);}}}
题目8输出1000~2000之间所有的闰年
思路判断该年年份是闰年的条件①能被4整除但不能被100整除 ②能被400整除
public static void main(String[] args) {for (int i 1000; i 2001; i) {if ((i % 4 0 i % 100 ! 0) || (i % 400 0)) {System.out.println(i);}}}
题目9输出乘法口诀表
public static void main(String[] args) {//外层变化慢for (int i 1; i 10; i) {//内层变化快for (int j 1; j i; j) {System.out.printf(%d*%d%2d , i, j, i*j);}System.out.println();}}
题目10求两个正整数的最大公约数
思路辗转相除法
public static void main(String[] args) {Scanner scan new Scanner(System.in);int a scan.nextInt();int b scan.nextInt();int c a % b;while (c ! 0) {a b;b c;c a % b;}System.out.println(b);}
题目11求0~99999之间的水仙花数并输出
思路水仙花数是指一个 n 位数n≥3 它的每个位上的数字的 n 次幂之和等于它本身。先得到100~999999之间的数判断一下i是几位数(这决定了后面要求每一位的几次方)且由于i不能改变所以要定义一个临时i去参与计算每得到i的一位就求它的次方数并放入sum中最后判断一下在当前循环下sum是否等于i。
public static void main(String[] args) {for (int i 100; i 1000000; i) {//1.计算当前数字i是一个几位数int count 0;int tmp i;while (tmp ! 0) {count;tmp / 12;}tmp i;//方便后面再次使用int sum 0;//2.求tmp的每一位while (tmp ! 0) {sum Math.pow(tmp % 10, count);tmp / 10;}if (sum i) {System.out.println(i);}}}
题目12写一个函数返回参数在内存中二进制形式1的个数
public static void main(String[] args) {Scanner scan new Scanner(System.in);//例如求-1在内存中的二进制表示形式1的个数// 10000000 00000000 00000000 00000001 -1原码// 11111111 11111111 11111111 11111110 -1反码// 11111111 11111111 11111111 11111111 -1补码// 即有32位// 11111111 11111111 11111111 11111111 -1补码// 00000000 00000000 00000000 00000001 1的补码//通过判断 -1i 1 1可以实现效果,i 32int a scan.nextInt();int count 0;for (int i 0; i 32; i) {if (((a i) 1) 1) {count;}}System.out.println(count);} 本篇文章已完结谢谢支持哟 ^^