javaSE 循环练习题
程序员文章站
2022-07-12 09:35:48
...
1、打印九九乘法表
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+" × "+i+" = "+ i*j+" ");
}
System.out.println();
}
2 打印直角三角形(右侧)
3. 打印直角三角形(左侧)
4. 打印等腰三角形(1 3 5 7....)
5.打印等腰三角(1 2 3 4 5)
6 打印倒三角
6. 编写程序,生成5个1至10之间的随机整数,并打印结果到控制台。
String rand="";
Random r=new Random();
for(int i=0;i<5;i++) {
rand=rand +' '+(r.nextInt(10)+1);
}
System.out.println(rand);
7.计算1-100之间的质数有多少个?将质数以及质数总数打印在控制台。
int num=0;
String str ="";
boolean b=true;
for(int i=2;i<=100;i++) {//1不是质数,排除循环外
for(int j=2;j<Math.sqrt(i);j++) { //大大提高效率
if(i%j==0) {
b=false; break;
}
}
if(b) {
b=true;
num++;
str=i+" "+str;
}
}
System.out.println("质数个数:"+num);
System.out.println("100以内的质数:"+str);
8 求质数的和(利用循环标号 ,提高效率)
int sum =0; //总和
long start = System.currentTimeMillis(); //系统的当前时间 1970-1-1
label:for(int i=2;i<=10000;i++) { //i=4 5 67890
for(int j=2;j<=Math.sqrt(i);j++) { //j =2~3 2~4
if(i%j==0) {
continue label;
}
}
sum+=i;
}
long end = System.currentTimeMillis(); //系统的当前时间 1970-1-1
System.out.println("执行所用的时间:"+(end-start));
System.out.println("总和:"+sum);
9. 统计100以内奇数、偶数的和
int jishu=0;
int oushu=0;
for(int i=1;i<=100;i++) {
if((i&1)==1) {//i%2==1
jishu+=i;
}else {
oushu+=i;
}
}
System.out.println(jishu);
System.out.println(oushu);
10 .3000米的绳子,每天减一半。问多少天这个绳子会小于5米,不考虑小数。
int a=0;
for(int j=3000;j>=5;j>>=1) {// for(int j=3000;j>=5;j/=2) {
a++;
}
System.out.println(a);
11 打印10000以内的水仙花数 即 i==g*g*g+sh*sh*sh+b*b*b
int shu=0;
for(int i=1;i<=10000;i++) {
int g = i%10;
int sh = i/10%10;
int b=i/100;
if(i==g*g*g+sh*sh*sh+b*b*b) {
System.out.println(i);
}
}
12 判断一个数是否是完全数(完数指的是一个数的所有因子数的和等于这个数本身,例如 6=1+2+3,即6就是完全数)
int quan;
do {
System.out.println("请输入一个整数");
quan=s.nextInt();
if(quan==0) break;
int sum=0;
if(quan>0) {//正整数
for(int i=1;i<quan;i++) {//不等于本身
if(quan%i==0) sum+=i;
}
}else {//负数整数
for(int i=-1;i>quan;i--) {//不等于本身
if(quan%i==0) sum+=i;
}
}
if(sum==quan) {
System.out.println(quan+"是完全数");
}else {
System.out.println(quan+"不是完全数");
}
}while(quan!=0);
System.out.println("程序结束");
13 定义一个正整数如:1205 统计它的各位数字中零的个数,并求各位数字中的最大者。
Scanner s=new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n=s.nextInt();
int num=0;
int max=0;
while(n!=0) {
int m=n%10;
if(m==0) {
num++;
}
n=n/10;
max=m>max?m:max;
}
System.out.println("最大:"+max);
System.out.println("0的个数:"+num);
14 打印菱形
第一种:
int n = 8 ;
for(int i=1;i<=n;i++) {
for(int j=1;j<=n-i;j++) {
System.out.print(" ");
}
for(int k=1;k<=i*2-1;k++) {
System.out.print('*');
}
System.out.println();
}
for(int i=1;i<=n-1;i++) {
for(int j=1;j<=i;j++) {
System.out.print(" ");
}
for(int k=2*(n-1)-i;k>=i;k--) {
System.out.print('*');
}
System.out.println();
}
第二种:
int n = 8 ;
for(int i=1;i<=n;i++) {
for(int j=1;j<=n-i;j++) {
System.out.print(" ");
}
for(int k=1;k<=i;k++) {
System.out.print("* ");
}
System.out.println();
}
for(int i=1;i<=n-1;i++) {
for(int j=1;j<=i;j++) {
System.out.print(" ");
}
for(int k=n-1;k>=i;k--) {
System.out.print("* ");
}
System.out.println();
}
上一篇: caffe 3d Unet网络实现
下一篇: Python教程:写一个简易的抽奖程序