Java 基础题20道

    科技2024-06-27  70

    1.水仙花束

    // 100-999的水仙花 public static void main(String[] args){ int g ,s, b; for(int i=100;i<=999;i++){ g=i%10; s=i/10%10; b=i/100%10; if(Math.pow(g,3)+Math.pow(s,3)+Math.pow(b,3)==i){ System.out.print(i+" "); } } 求1~200中3的倍数,或包含3的数之和 int sum = 0; for(int i=1;i<=200;i++){ if(i%3==0 || i%10==3 || i/10%10==3 || i/100%10==3){ sum += i; } } System.out.print(sum); 23+345+567+…+99100101的值 int sum=0,s=0; for(int i=1;i<=99;i++){ if(i%2!=0) { s = i*(i+1)*(i+2); sum += s;} } System.out.print(sum); 求1-1/2+1/3-1/4+…+1/99-1/100的值。 double x=0,sum=0,k =-1; for (int i = 2; i <=100 ; i++) { x=k/i; sum +=x; k=-k; } sum +=1; System.out.print(sum); 随机生成一个数 是否为质数 Random rand = new Random(); int a =rand.nextInt(100)+1; System.out.print(a); boolean isprime = true; for(int i=2;i<=a/2;i++) if (a % i == 0) { isprime = false; break; } System.out.print(isprime?"是质数":"不是质数"); 猜字小游戏 Random rand = new Random(); int num = rand.nextInt(10000)+1; Scanner input = new Scanner(System.in); int count = 0,guess; do{ guess =input.nextInt(); System.out.println(guess<num?"小了":guess>num?"大了":"中了"); count++; }while(guess!=num); System.out.print("一共猜了"+count+"次"); 长度为10,取值范围1~100的随机数 随机生成1~100间数值 检索该值是否存在于数组中 int[] arr =new int [10]; Random rand = new Random(); int num = rand.nextInt(100)+1; System.out.println(num); for (int i = 0; i<arr.length ; i++) { arr[i] = rand.nextInt(100)+1; } for (int i:arr) { System.out.print(i+"\t"); } boolean has =false; for (int i = 0; i <arr.length ; i++) { if(arr[i]==num){ has = true; break; } } System.out.println(); System.out.print(has?"存在":"不存在"); 指定位置插入 char[] arr = {'f','e','a','g','k','m','x',(char)0}; char t = 'y'; Scanner input = new Scanner(System.in); int pos = input.nextInt(); for (int i = arr.length-1; i>pos ; i--) { arr[i]=arr[i-1]; } arr[pos] = t; System.out.println("--------"); for (char m:arr) { System.out.print(m+"\t"); } 顺序插入: Scanner input = new Scanner(System.in); char [] arr2 = {'b','d','f','i','k','m','x',(char)0}; char t2 = input.next().charAt(0); int i = arr2.length-2; for (; i>=0 ; i--) { if(t2>arr2[i]) break; else arr2[i+1]=arr2[i]; } arr2[i+1]=t2; for (char c:arr2 ) { System.out.print(c+"\t"); } 十用户录入3个值,找出其最大值 Scanner input = new Scanner(System.in); double a,b,c,max; a = input.nextInt(); b = input.nextInt(); c = input.nextInt(); max = a>b?a:b; max = max>c?max:c; System.out.print(MessageFormat.format("{0}\t{1}\t{2}中最大值为{3}",a,b,c,max)); 输入年月日,求这一天是这一年的第多少天 // int year, month, day,x=0,num1=0,num2=0; // Scanner input = new Scanner(System.in); // System.out.println("输入年月日"); // year = input.nextInt(); // month = input.nextInt(); // day = input.nextInt(); // boolean leapyear = (year%4==0 && year%100!=0) || year%400==0; // for (int i = 1; i <month ; i++) { // switch (i){ // case 1: case 3: case 5: case 7: case 8: case 10: case 12: // x = 31; // break; // case 4: case 6: case 9: case 11: // x = 30; // break; // case 2: // x = leapyear?29:28; // break; // } // num1 += x; // } // num2 = num1+day; // System.out.print("今年的天数:"+num2); 输入年月,输出该月日历 int year = 2020,month =10, total = 1,monthDay=0,weekDay; for (int i = 1900; i <year ; i++) { total += (i%4==0&&i%100!=0) || i%400==0 ? 366 : 365; } for (int i = 1; i <=month ; i++) { switch (i){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: monthDay=31; if(i<month){ total += monthDay; } break; case 4: case 6: case 9: case 11: monthDay=30; if(i<month){ total += monthDay; } break; case 2: monthDay= (year%4==0 && year%100!=0) || year%400==0 ? 29 : 28; if(i<month){ total += monthDay; } break; } } weekDay = total%7; //求出了当月第一天是星期几 System.out.println("日\t一\t二\t三\t四\t五\t六"); for (int i = 0; i <weekDay ; i++) { System.out.print("\t"); } for (int i = 1; i <=monthDay ; i++) { System.out.print(i+"\t"); if (total++%7 == 6) { System.out.println(); } } 已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值 for (int i = 100; i <1000 ; i++) { int g =i%10; int s =i/10%10; int b = i/100%10; if(b*100+s*10+g+g*100+s*10+b==1333) System.out.println(g+"\t"+s+"\t"+b); } 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? int count = 0; for (int i = 1; i <5 ; i++) { for(int j =1; j<5;j++){ for (int k = 1; k <5 ; k++) { if(i!=j && i!=k && j!=k ) { System.out.print(i + "" + j + "" + k + " "); count++; } } } } System.out.println(); System.out.print(count); 编程计算1!+2!+3!+…+10!的值 int sum = 0,s; for (int i = 1; i <=10 ; i++) { s=1; for (int j=1; j<=i;j++) s = s*j; sum +=s; } System.out.println(sum); L求两个正整数的最大公约数和最小公倍数 Scanner input = new Scanner(System.in); int a = input.nextInt(); int b = input.nextInt(); int i,j; if(a<b){ int t; t=b; b=a; a=t; } for ( i =b; i>0 ; i--) if(a%i==0 &&b%i==0) break; System.out.println("最大公约数为"+i); for ( j = a; j <=a*b ; j++) if(j%a==0&&j%b==0) break; System.out.println("最小公倍数为"+j); 从键盘输入n和a的值,计算a+aa+aaa+…+aa…a(n个a)的值。 Scanner input = new Scanner(System.in); int n = input.nextInt(); int a = input.nextInt(); int sum=a,s=a; for (int i = 2; i <=n ; i++) { s = s*10+a; sum+=s; } System.out.println(sum); 求以下数列前十五项的和:2/1,3/2,5/3,8/5,13/8,21/13 float m=2,n=1,k,sum=2; for (int i = 2; i <=15 ; i++) { k=m; m=m+n; n=k; sum +=m/n; } System.out.println(sum);

    19.小九九

    for (int i = 1; i <=9 ; i++) { for (int j = 1; j <=i ; j++) { System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println(); }

    20.输出1—999中能被3整除且至少有位数字是5的所有整数及其个数

    int count = 0; for (int i = 1; i <1000 ; i++) { if(i%3==0 && (""+i - List item ).indexOf('5')!=-1){ System.out.print(i+" "); if(++count%10==0){ System.out.println(); } } } System.out.println("\n共计"+count+"个");
    Processed: 0.009, SQL: 8