本文共 4162 字,大约阅读时间需要 13 分钟。
输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。
方法一:
class calculate{ public static void main(String[] args){ for(int i=1000;i < 9999 ;i++){ int qian = i/1000; int bai = i/100%10; int shi = i%100/10; int ge = i%10; int num = (int)Math.sqrt(i); if(num*num == i && qian==bai && shi == ge){ System.out.printf("%d ",i); } } }}方法二:
class calculate{ public static void main(String[] args){ for(int a = 1;a <= 9;a++){ for(int b = 0;b <= 9;b++){ //判断是否是完全平方的方法之一 //int num = a*1100+ b*11; //int numsqrt = (int)Math.sqrt(num); //if(numsqrt*numsqrt == num){ // System.out.printf("%d ",num); //} int num = a*1100 + b*11; double flor = Math.sqrt(num) + 0.5; int numsqrt = (int)Math.floor(flor); if(numsqrt* numsqrt == num){ System.out.printf("%d ",num); } } } }}
对于任何大于1的自然数n,若n为奇数,则将n变为3*n +1,否则变为n的一半,经过若干次变换,最后一定会使n变为1.输入n,输出变换次数
输入样例:3
样例输出;7
class calculate{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int conunt = 0; while(n > 1){ //(n%2 == 1 )? n = 3*n +1:n = n / 2; if(n%2 == 1){ n = 3*n + 1; }else{ n = n / 2; } conunt++; } System.out.printf("%d ",conunt); }}
输入n ,计算S = 1!+2!+3!+...+n! 输出结果的后6位,这里n<=10^6,
样例输入:10
样例输出:37913
import java.util.Scanner;class calculate{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int conunt = 0; long sum = 0; for(int i = 1;i<=n;i++){ sum += f(i); } String result = String.valueOf(sum%1000000); System.out.printf("%s",result); } public static long f(int n){ long sum = 1; for(int i = 1; i<= n;i++){ sum *= i; } return sum; }}
输入一个不超过10^9的正整数,输出它的位数。例如 12735的位数是5,请不要使用任何数学公式,只用四则运算和循环语句实现。
class calculate{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String num = sc.next(); System.out.printf("%s",num.length()); }}
输出100~999的所有水仙花数。
import java.util.Scanner;class calculate{ public static void main(String[] args){ for(int a = 1;a < 10;a++){ for(int b = 0;b < 10;b++){ for(int c = 0;c < 10;c++){ int numq = 100*a + 10*b + c; int numw = a*a*a + b*b*b + c*c*c; if(numq == numw){ System.out.printf("%d\n",numq); } } } } }}
输入一个整数n<=20 ,输出一个n层的倒三角,例如n=5时,输出如下:
#########
#######
#####
###
#
import java.util.Scanner;class calculate{ public static void main(String[] args){ Scanner sc= new Scanner(System.in); int n = sc.nextInt(); for(int i = n ;i > 0;i--){ for(int j = 0;j < 2*i-1;j++){ System.out.printf("%s","#"); } System.out.printf("\n"); for(int k = (n - i);k >= 0;k--){ System.out.printf(" "); } } }}
输入一个正整数n,输出H(n) = 1+1/2+1/3+...+1/n;保留三位小数。例如n=3时,输出1.833.
import java.util.Scanner;class calculate{ public static void main(String[] args){ Scanner sc= new Scanner(System.in); int n = sc.nextInt(); double sum = 0; for(int i = 1;i<=n;i++){ sum += 1.0/i; } System.out.printf("%.3f",sum); }}
计算PI/4 = 1-1/3+1/5-1/7+...,直到最后一项小于10^-6。
class calculate{ public static void main(String[] args){ double sum = 0; int count =1; for(int i = 1;;i+=2){ double f = 1.0/i; if(count%2 == 0){ sum -= f; }else{ sum += f; } count++; if(f < Math.pow(10, -6)){ break; } } System.out.printf("%f",sum); }}
输入两个正整数,n<m<10^6,输出 1/n^2 + 1/(n+1)^2 +...+1/m^2,保留5位小数。例如n=2,m=4时答案是0.42361;n65536,m=655360时答案是0.00001。
import java.util.Scanner;class calculate{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); if( n > m || m > Math.pow(10,6)){ System.out.printf("%s","错误输入"); } double sum = 0; for(int i = n;i<=m;i++){ double f = 1.0/(Math.pow(i,2)); sum+=f; } System.out.printf("%.5f",sum); }}2-10分数化小数
输入正整数a,b,c,输出a/b的小数形式,精确到小数点的c位。a,b<=10^6,c<= 100。例如a=1,b=6,c=4时应输出0.1667
import java.util.Scanner;class calculate{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); double a = sc.nextDouble(); double b = sc.nextDouble(); int c = sc.nextInt(); double d = a/b; System.out.printf("%."+c+"f",d); }}