算法入门-循环结构程序设计
2017-02-27 11:28
597 查看
2-1 aabb
输出所有形如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); } } } } }
2-2 3*n +1问题
对于任何大于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); } }
2-3 阶乘之和
输入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; } }
2-4 位数
输入一个不超过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()); } }
2-5水仙花数
输出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); } } } } } }
2-6 倒三角
输入一个整数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(" ");
}
}
}
}
2-7调和级数
输入一个正整数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);
}
}
2-8近似计算
计算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);
}
}
2-9 子序列的和
输入两个正整数,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);
}
}
相关文章推荐
- 【算法竞赛入门经典学习日记】第二章 循环结构程序设计
- 【算法竞赛入门经典】第二章:循环结构程序设计 代码及笔记
- 算法学习之循环结构程序设计
- C++程序设计课程同步项目——循环结构程序设计项目任务一
- 循环控制结构程序05 - 零基础入门学习C语言20
- 循环结构程序设计
- Turbo-prolog程序设计中的显式循环与迭代结构
- FLEX程序基本结构--循环结构程序设计
- 鸡啄米:C++编程入门系列之七(算法的基本控制结构之循环结构)
- 循环控制结构程序04 - 零基础入门学习C语言19
- 循环控制结构程序04 - 零基础入门学习C语言19
- 循环控制结构程序06 - 零基础入门学习C语言21
- Visual Studio 2005入门 之 控制结构一(循环)[视频]
- 循环控制结构程序07 - 零基础入门学习C语言22
- 【数据结构与算法基础】以数组实现的循环队列 / Circular Queue implemented by array
- 循环控制结构程序05 - 零基础入门学习C语言20
- .NET入门(九)测试各种循环结构,for,while和do while
- C语言程序设计 练习题参考答案 第三章 (3) 循环结构
- 循环控制结构程序01 - 零基础入门学习C语言16
- 循环控制结构程序07 - 零基础入门学习C语言22