Java练习题7.1

Java练习题7.1


第一部分

1.求1+2+3+4+5+6+7+8+9+10;

package com.shangjiti.aoian;
public class Ex1 {
	public static void main(String[] args) {
		int n=0;
		int i;
		for(i=1;i<=10;i++) 
		{
			n+=i;
		}
		System.out.println(n);
	}
}

2.求1+1/2+1/3+…+1/9+1/10;

package com.shangjiti.aoian;
public class Ex2 {
	public static void main(String[] args) {
		int i;
		double n=0;
		for(i=1;i<=10;i++)
		{
			n=n+1.0/i;
		}
		System.out.println(n);
	}
}

3.求1-1/2+2/3+…+8/9-9/10;

package com.shangjiti.aoian;
public class Ex3
	public static void main(String[] args) {
		int i,j=2;
		double s=1;
		for(i=1;i<10;i++)
		{
			s=s+i*Math.pow(-1,i)/j;
			j++;
		}
		System.out.println(s);
	}
}

4.求1+1/2+2/3+3/5+5/8+…;

package com.shangjiti.aoian;
public class Ex4 {
	public static void main(String[] args) {
		int i;
		double a=1,b=1,t;
		double sum=0.0;
		for(i=1;i<=10;i++)
		{
			sum=sum+a/b;
			t=a;
			a=b;
			b=b+t;
		}
		System.out.println(sum);
	}
}

5.输入a和n的值,求s=a+aa+aaa+aaaa+aa…a(n个a)的值并输出。例如当n是5,a是2的时候,s=2+22+222+2222+22222;

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex5 {
	public static void main(String[] args) {
		System.out.println("请输入a和n的值:");
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		int n=sc.nextInt();
		int i,sum=0,s=0;
		for(i=1;i<=n;i++)
		{
			s=s*10+a;
			sum=sum+s;
		}
		System.out.println("sum="+sum);
	}
}

6.输入一个整数,判断它有多少位并输出;

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex6 {	
	public static void main(String[] args) {
		System.out.println("请输入一个整数:");
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int i;
		for(i=0;n>0;i++)
		{
			n=n/10;
		}
		System.out.println("有"+i+"位");
	}	
}

第二部分

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

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex7 {
	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+"不是水仙花数");
		        }
	    }
}

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

package com.shangjiti.aoian;
public class Ex8 {
	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);
			
		}
	}
}

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

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex9 {
	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");
		}
	}
}

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

package com.shangjiti.aoian;
public class Ex10 {
	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);
		}

	}
}

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

package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex11 {
	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");
		}
	}
}

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

package com.shangjiti.aoian;
public class Ex12 {
	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);
		}
	}
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值