循环的练习

1:输入整数a和n,输出结果s,其中s与a、n的关系是:s=a+aa+aaa+aaaa+aa...a,最后为n个a。例如a=2、n=3时,s=2+22+222=246。
public class Demo1 {

public static void main(String[] args) {

int a,s,n;

long sum=0;

Scanner sin=new Scanner(System.in);

System.out.println("请输入a和n:");

a=sin.nextInt();

n=sin.nextInt();

String str="";

s=0;

for(int i=1;i<=n;i++)

{

s*=10;

s+=a;

if(i==n)

{

str+=s;

}else

{

str+=s+"+";

}

sum+=s;

}

System.out.println(str+"="+sum);

}



}
2:打印出2-99之间的同构数,同构数是指这个数为该数平方的尾数,如5的平方为25,6的平方为36,25的平方为625。
public class Demo2 {

public static void main(String[] args) {

int a;//平方值

int b;//尾数



for(int i=2;i<=99;i++)

{

a=i*i;

if(i<=10)

{

b=a;//尾数取一位

}

else

{

b=a0;//尾数取两位

}



if(i==b)

{

System.out.println(i+"是同构数,平方是:"+a);

}

}

}

}
3:输入两个正整数m和n,输出其最大公约数和最小公倍数。

最大公约数:辗转取余法

最小公倍数:m*n/最大公约数

注意:

l 大数除以小数,所以要判断,保证m中是大数(交换)

l m和n的值因为辗转会发生改变,为了保证最小公倍数的计算,所以要将m和n的原值先保存起来

m,n,r,a,b,temp
public class Demo3 {

public static void main(String[] args) {

int m,n,r;//分别表示键盘上接收的两个数和求出的余数(r)

int a,b;//保存m,n的原值(后面的辗转会改变m,n的值)。为了计算最小公倍数,需要原值

int temp;//中间变量。有可能用户在m中保存小值,但程序要求m保存大值,算法要求大值取小值的模



Scanner sin=new Scanner(System.in);

System.out.println("请输入m和n:");

m=sin.nextInt();

n=sin.nextInt();



//保留原值

a=m;

b=n;



if(m<n)//如果m小于n,则交换

{

temp=m;

m=n;

n=temp;

}



//辗转取余法

do

{

r=m%n;

m=n;//上一次的除数变为被除数

n=r;//上一次的余数变为除数

}while(r!=0);



System.out.println(a+"和"+b+"的最大公约数是:"+m);

System.out.println(a+"和"+b+"的最小公倍数是:"+(a*b)/m);





}

}
试题4:输出1+2!+3!+...+20!的结果。
public class Demo4 {

public static void main(String[] args) {

long result=1;//表示阶乘的结果,阶乘即累乘

long sum=0;//阶乘的和,初值为0;



for(int i=1;i<=20;i++)

{

result*=i;//计算数字i的阶乘

sum+=result;

}



System.out.println("1+2!+3!+……+20!="+sum);

}

}


--来自网页客户端
4.jpg
已邀请:

Skyy - 暂无简介

赞同来自:

留个坐标

--来自移动客户端

admin

赞同来自:

记得再来留个台阶,一步一步向上走!

--来自网页客户端

yank

赞同来自:

加油

--来自移动客户端

你我

赞同来自:

加油

--来自移动客户端

要回复问题请先登录注册

Template error, template file not found