Java练习题8.1

Java练习题8.1


1、输入6个整数,求出它们的和以及最大值并输出。

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex1 {
	public static void main(String[] args) {
	System.out.println("请输入6个整数:");
	Scanner sc=new Scanner(System.in);
	int n1=sc.nextInt();
	int n2=sc.nextInt();
	int n3=sc.nextInt();
	int n4=sc.nextInt();
	int n5=sc.nextInt();
	int n6=sc.nextInt();
	int sum,max=n1;
	sum=n1+n2+n3+n4+n5+n6;
	if(n2>max)
		max=n2;
	if(n3>max)
		max=n3;
	if(n4>max)
		max=n4;
	if(n5>max)
		max=n5;
	if(n6>max)
		max=n6;
	System.out.println("sum="+sum+"max="+max);	
	}
}

2、输入一个三位的整数,判断其是否为水仙花数,如果是,则将该数输出。

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex2 {
	public static void main(String[] args) {
	        System.out.println("请输入一个三位整数:");
	        Scanner sc = new Scanner(System.in);
	        int i = sc.nextInt();
	        int b = i/100%10;
	        int s = i/10%10;
	        int g = i/1%10;
	        if(g*g*g+s*s*s+b*b*b==i) 
		        {
		            System.out.println(i+"是水仙花数");
		        }
	        else 
		        {
		            System.out.println(i+"不是水仙花数");
		        }
	    }
}

3、输出1000以内所有的水仙花数。

package com.shangjiti.aoian;
public class Ex3 {
	public static void main(String[] args) {
		int i;
		int ge,shi,bai;
		for(i=100;i<=1000;i++)
		{
			ge=i%10;
			shi=i/10%10;
			bai=i/100;
			if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i)			
			System.out.println(i);
			
		}
	}
}

4、输入一个整数,判断其是否是完数,如果是,则输出YES,否则输出NO。
(提示:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3)

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex4 {
	public static void main(String[] args) {
		System.out.println("请输入一个正整数:");
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();						
		int i;
		int sum=0;
		for(i=1;i<n;i++)
		{
			if(n%i==0) 
			{
				sum=sum+i;				
			}
		}
		if(n==sum)
		{
			System.out.println("YES");
		}
		else 
		{
			System.out.println("NO");
		}
	}
}

5、输出1000以内的所有完数。

package com.shangjiti.aoian;
public class Ex5 {
	public static void main(String[] args) {
		int i,n,sum;
		for(n=1;n<=1000;n++)
		{
			sum=0;
			for(i=1;i<n;i++)
			{
				if(n%i==0)
				sum=sum+i;
			}
			if(sum==n)
				System.out.println(n);
		}

	}
}

6、输入一个大于3的整数,判断其是否为素数,输出判断结果“YES”或“NO”

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex6 {
	public static void main(String[] args) {
		System.out.println("请输入1个大于3的整数:");
		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();
		int a=0;
		int i;
		for(i=2;i<num;i++)
		{
			if(num%i==0)
			{
				a++;
			}
		}
		if(a==0)
		{
			System.out.println("YES");
		}
		else
		{
			System.out.println("NO");
		}
	}
}

7、输出200-300之间所有的素数

package com.shangjiti.aoian;
public class Ex7 {
	public static void main(String[] args) {
		int i,n;
		for(i=200;i<=300;i++)
		{
			for(n=2;n<i;n++)
			{
				if(i%n==0)
				break;
			}
			if(n==i)
			System.out.println(n);
		}
	}
}

第二部分:循环结构的应用:

1、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

package com.shangjiti.aoian;
public class Ex8 {
	public static void main(String[] args) {
		int i;
		double h=50,s=100;
		for(i=2;i<=10;i++)
		{
			s=s+2*h;
			h=h/2;
		}
		System.out.println("第十次反弹高度为:"+h);
		System.out.println("第10次落地共经过的米数:"+s);
	}
}

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

package com.shangjiti.aoian;
public class Ex9 {
	public static void main(String[] args) {
		int day,s=1;
		for(day=9;day>0;day--)
		{
			s=2*(s+1);
		}
		System.out.println("第一天共摘了"+s+"个桃子");
	}
}

3、两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比的名单,a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单

package com.shangjiti.aoian;
public class Ex10 {
	public static void main(String[] args) {
		char i,j,k;
		for(i='x';i<='z';i++)
		{
			for(j='x';j<='z';j++)
			{
				if(i!=j)
				{
					for(k='x';k<='z';k++)
					{
						if(i!=k&&j!=k) {
							if(i!='x'&&k!='x'&&k!='z')
							{
								System.out.println("a与"+i);
								System.out.println("b与"+j);
								System.out.println("c与"+k);
							}							
						}
					}
				}
			}
		}
	}
}

能力不足,水平有限,如有错误,感谢指正

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值