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);
}
}
}
能力不足,水平有限,如有错误,感谢指正