Java 新手习题()
循環
1.(for 循環)計算1+2+3+…+100 的和
package com.fxm.day03.test; public class day03test1{public static void main(String[] args){int sum = 0;for(int i = 1; i < 101; i++){sum += i;}System.out.println("1到100的和:"+sum);} }2.(for 循環)計算1+3+5+…+99 的和。
package com.fxm.day03.test; public class day03test2{public static void main(String[] args){int sum = 0;for(int i = 1; i < 100; i += 2){sum += i;}System.out.println("1到100的奇數和為:"+sum);} }3.(while/do while循環)把1、2 兩題用while 循環或do…while 循環改寫。
package com.fxm.day03.test; public class Day03test3{public static void main(String[] args){test1(100);test2(99); }public static int test1(int n){int sum = 0;while(n > 0){sum += n;n--;}System.out.println("1到100的和:"+sum);return 0;}public static int test2(int n){int sum = 0;while(n > 0){sum += n;n -= 2;}System.out.println("1到100的奇數和為:"+sum);return 0;} }4.(for 循環)讀入一個小于10 的整數n,輸出它的階乘n!。
package com.fxm.day03.test; public class Day03test4{public static void main(String[] args){java.util.Scanner sc = new java.util.Scanner(System.in);System.out.println("輸入一個小于10的數:");int n = sc.nextInt();int result = 1;for(int i = 1; i <= n; i++){result *= i;}System.out.println("它的階乘為:"+result);} }5.(循環)找出1~100之中,所有能被5整除,或者被6整除的數字。在控制臺輸出
package com.fxm.day03.test; public class Day03Test5{public static void main(String[] args){System.out.println("輸出1到100之間能被5或6整除的數:");for(int i = 1; i < 101; i++){if(i % 5 == 0||i % 6 == 0){System.out.print(" "+i);}}} }6.(循環)用戶輸入一個數字,列出所有它能夠整除的數字。 比如用戶輸入48,那么控制臺中將顯示:
package com.fxm.day03.test; public class Day03Test6{public static void main(String[] args){java.util.Scanner sc = new java.util.Scanner(System.in);System.out.println("輸入一個數:");int n = sc.nextInt();System.out.println("它所以能整除的數有:");for(int i = 1; i <= n; i++){if(n % i == 0){System.out.println(i);}}} }7.(for 循環)求100 以內所有能被3 整除但不能被5 整除的數字的和。
package com.fxm.day03.test; public class Day03Test7{public static void main(String[] args){int sum = 0;for(int i = 1; i < 100; i++){if(i % 3 == 0&&i % 5 != 0){sum += i;}}System.out.println("100以內所有能被3整除但不能被5整除的數字和:"+sum);} }8.(for 循環)“百錢買百雞”是我國古代的著名數學題。
題目描述:3文錢可以買1只公雞,2文錢可以買一只母雞,1文錢可以買3只小雞。 用100文錢買100 只雞,那么各有公雞、母雞、小雞多少只?
優化如下:
package com.fxm.day03.test; public class Day03Test8{public static void main(String[] args){int x,y,z;for(x = 0;x < 100;x++){for(y = 0;y < 100;y++){z = 100 - x - y;if(z % 3 != 0){continue;}if(3*x+2*y+z/3==100){System.out.println("公雞:"+x+" 母雞:"+y+" 小雞:"+z);}}}} }9.(for 循環)搬磚問題:36 塊磚,36 人搬,男搬4,女搬3,兩個小孩抬1 磚, 要求一次 全搬完,問 男、女和小孩各若干?
package com.fxm.day03.test; public class Day03Test9{public static void main(String[] args){int x,y,z;for(x = 1;x < 36;x++){for(y = 1;y < 36;y++){for(z = 2;z < 36;z+=2){if(x+y+z==36&&4*x+3*y+z/2==36){System.out.println("男:"+x+" 女:"+y+" 小孩:"+z);}}}}} }10.(for 循環)編程找出四位整數abcd 中滿足 (ab+cd)(ab+cd)=abcd 的數。 例如abcd=1234,則ab=12,cd=34;
package com.fxm.day03.test; public class Day03Test10{public static void main(String[] args){int a,b,c,d;for(a = 0;a < 10;a++){for(b = 0;b < 10;b++){for(c = 0;c < 10;c++){for(d = 0;d < 10;d++){if((10*a+b+10*c+d)*(10*a+b+10*c+d)==1000*a+100*b+10*c+d){System.out.println("a:"+a+" b:"+b+" c:"+c+" d:"+d);}}}}}} }優化如下:
package com.fxm.day03.test; public class Day03Test10{public static void main(String[] args){for(int i = 1000;i < 9999;i++){int ab = i / 100;int cd = i % 100;if((ab+cd)*(ab+cd)==i){System.out.println(i);}}} }11.(循環)*讀入一個整數n,輸出如下圖形 n = 3
n = 4
思路:
I. 讀入的整數n,就是外層循環的循環次數。 II. 對于每一行,要做的事情: 1). 輸出若干個空格; 2). 輸出若干個星; 3). 換行。 提示:輸出不換行,用System.out.print()。
12、利用循環,實現下面數據的輸出結果。 1-3+5-7+…-99+101
package com.fxm.day03.test; public class Day03Test12{public static void main(String[] args){int sum1 = 0;int sum2 = 0;for(int i = 1;i < 102;i+=4){sum1 += i;}for(int j = 3;j < 100;j+=4){sum2 += j;}int result = sum1 - sum2;System.out.println("1-3+5-7+бн-99+101="+result);} }13.(for循環)輸出99 乘法表。
package com.fxm.day03.test; public class Day03Test13{public static void main(String[] args){for(int i = 1;i < 10;i++){for(int j = 1;j <= i;j++){System.out.print(i+"*"+j+"="+i*j+" "+"\t");}System.out.println();}} }14.(for循環)求水仙花數。
提示:所謂水仙花數,是指一個三位數abc,如果滿足a3+b3+c3=abc,則abc是水 仙花數。
函數
5.寫一個函數,接受一個整數,返回這個整數是幾位數
package com.fxm.day04.test; import java.util.Scanner; public class Day04Test05{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("輸入一個數:");int n = sc.nextInt();int x = test05(n);System.out.println("該數是"+x+"位數。");}public static int test05(int n){if(n == 0){return 1;}int i = 0;while(n != 0){n /= 10;i++;}return i;} }6.(函數嵌套)打印所有的三位數,該三位數等與其每位數字的階乘之和。
package com.fxm.day04.test; public class Day04Test06{public static void main(String[] args){for(int a = 0;a < 10;a++){for(int b = 0;b < 10;b++){for(int c = 0;c < 10;c++){if(100*a+10*b+c==test06(a)+test06(b)+test06(c)){System.out.print(a);System.out.print(b);System.out.print(c);System.out.println();}}}}}public static int test06(int a){if(a == 0){return 1;}return a*test06(a-1);} }7.(函數嵌套)如果整數A 的全部因子(包括1,不包括A本身)之和等于B,且整數B的全部 因 子包括1,不包括B 本身)之和等于A,則稱整數A\B是一對親密數。打印出3000 以內的全部 親密數。
package com.fxm.day04.test; public class Day04Test07{public static void main(String[] args){for(int A = 2;A < 3000;A++){for(int B = 2;B < 3000;B++){if(test07(A) == test07(B)&&A != B){System.out.println("A:"+A+" B:"+B);}}}}public static int test07(int a){int sum = 0;for(int i = 1;i < a;i++){if(a % i == 0){sum += i;}}return sum;} }8.(函數嵌套)驗證哥德巴赫猜想:
任何一個大于6的偶數,都能分解成兩個質數的和。要求輸入 一個整數,輸出這個 數能被 分解成哪兩個質數的和。 eg : 14 14=3+11 14=7+7
9、斐波那契數列的第1和第2個數分別為1和1,從第三個數開始,每個數等于其前兩個數之 和(1,1,2,3,5,8,13….).寫出一個函數,接受一個數表示數列序號,返回對應序號中序列的 值
package com.fxm.day03.test; public class Day03Test15{public static void main(String[] args){java.util.Scanner sc = new java.util.Scanner(System.in);System.out.println("輸出一個數:");int n = sc.nextInt();int a = shulie(n);System.out.print(a);}public static int shulie(int n){if(n ==1||n == 2){return 1;}return shulie(n-1) + shulie(n-2);} }10、寫一個函數,接收一個整數n,判斷這個數是不是質數。(質數是只能被1和它本身整除 的自然數,1本身不是質數)
package com.fxm.day04.test; public class Day04Test10{public static void main(String[] args){test10(); }public static int test10(){java.util.Scanner sc = new java.util.Scanner(System.in);System.out.println("輸入一個數:");int n = sc.nextInt();for(int i = 2;i < n;i++){if(n % i == 0){System.out.println("不是質數");break;}else if(i == n-1){System.out.println("是質數");}}return 0;} }總結
以上是生活随笔為你收集整理的Java 新手习题()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pascl32.exe - pascl3
- 下一篇: 指定身故受益人的时候有哪些注意要点?受益