欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Javase—循环语句习题

程序员文章站 2022-07-14 23:54:08
...
/**
 * 2.本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(用double存储)
 */
 
package com.circle;
 
public class Text2 {
	public static void main(String[] args) {
		double money=10000;		//本金
		double rate=0.003;		//利息
		//5年后的本金
		for(int i=0;i<5;i++) {
			money=money*(1+rate);
		}
		System.out.println("5年后的本金为:"+money);
	}
}


/**
 * 3. 计算出1—100之间所有能被3整除的整数的和?
 */
 
package com.circle;
 
public class Text3 {
	public static void main(String[] args) {
		int sum=0;	//和
//		方法一:
//		//循环遍历1-100之间的数
//		for(int i=1;i<=100;i++) {
//			//如果该数能被3整除,则加到总和中
//			if(i%3==0) {
//				//System.out.println(i);
//				sum+=i;
//			}
//		}
		//方法二:
		int i=3;
		while(i<=100) {
			sum+=i;
			i+=3;
		}
		System.out.println();
		System.out.println("1—100之间所有能被3整除的整数的和为:"+sum);
	}
}


/**
 * 6. 找出一个数的所有因子数
 */
 
package com.circle;
 
import java.util.Scanner;
 
public class Text6 {
	public static void main(String[] args) {
		//因子数就是能被它整除的数
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一个正整数:");
		int n=s.nextInt();
		System.out.println("该数的因子数有:");
		if(n>0) {
			for(int i=1;i<n;i++) {
				if(n%i==0) {
					System.out.println(i);
				}
			}
		}else if(n<0) {
			for(int i=-1;i>n;i--) {
				if(n%i==0) {
					System.out.println(i);
				}
			}
		}else {
			System.out.println("该数为0,没有因数");
		}
		s.close();
	}
}


/**
 * 7. 输入一个数,判断这个数是否是素数;
 */
 
package com.circle;
 
import java.util.Scanner;
 
public class Text7 {
	public static void main(String[] args) {
		//素数:只能被1和自身整除的数,也被称为是素数,最小是2
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一个正整数:");
		int n=s.nextInt();
		//设置因数初始个数为0;
		int factor=0;
		if(n>1) {
			for(int i=2;i<n;i++) {
				//当该数存在因数时,将因子个数+1
				if(n%i==0) {
					factor++;
				}
			}
			//如果该数没有1和自身以外的因数,则该数为质数
			if(factor==0) {
				System.out.println("您输入的数:"+n+" 为素数");
			}else {
				System.out.println("您输入的数:"+n+" 不是素数");
			}
		}
		s.close();
	}
}


/**
 * 8 定义一个正整数如:1205  统计它的各位数字中零的个数,并求各位数字中的最大者。
 */
 
package com.circle;
 
import java.util.Scanner;
 
public class Text8 {
	public static void main(String agrs[]) {
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一个正整数:");
		int n=s.nextInt();
		int num;		//存储每个位置的值
		int count=0;		//存储0的个数
		int max=0;		//存储最大数
		while(n!=0) {
			num=n%10;	//获取该数除10取余的值
			n=n/10;		//获得该数除10以后的值
			if(num==0) {
				count++;
			}
			//三元运算符:获取各位数字中的最大者存在max中
			max=max>num?max:num;
		}
		System.out.println("该数各位数字中零的个数为:"+count);
		System.out.println("该数各位数字中的最大者为:"+max);
		s.close();
	}
}


/**
 * 9 有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完
 */


package com.circle;


public class Text09 {
	public static void main(String[] args) {
		int num=1020;	//最初的西瓜个数
		int day=0;		//卖完需要的天数
		while(num>0) {
			num=num/2-2;
			day++;
		}
		System.out.println(day+"天以后能卖完");
	}
}


/**
 * 10猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,
 * 以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
 */



package com.circle;

public class Text10 {
	public static void main(String[] args) {
		//利用反推
		int sum=1;		//第9天结束,第10天早上的桃子个数
		for(int i=9;i>0;i--) {
			sum=(sum+1)*2;
		}
		System.out.println("第一天共摘了"+sum+"个");
	}
}


/**
 * 11判断一个数是否是完全数(完数指的是一个数的所有因子数的和等于这个数本身,例如 6=1+2+3,即6就是完全数)
 */


package com.circle;

import java.util.Scanner;

public class Text11 {
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		System.out.println("请输入一个正整数:");
		int n=s.nextInt();
		int sum=0;			//存储因子数的和
		for(int i=1;i<n;i++) {
			//获取所有的因子数,相加的和存储到sum里
			if(n%i==0) {
				sum+=i;
			}
		}
		if(sum==n) {
			System.out.println("该数:"+n+" 为完全数");
		}else {
			System.out.println("该数:"+n+" 不为完全数");
		}
		s.close();
	}
}


/**
 * 12.循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误(使用break)
 */


package com.circle;

import java.util.Scanner;

public class Text12 {
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		int n;		//存储每门课的成绩
		int avg=0;	//存储平均分
		System.out.println("请输入该学生5门课的成绩:");
		int i=0;
		while(i<5) {
			n=s.nextInt();
			if(n<0) {
				System.out.println("录入错误");
				break;
			}
			avg+=n;
			i++;
		}
		if(i==5) {
			System.out.println("该学生5门课的平均分为:"+avg/i);
		}
		s.close();
	}
}