您的位置:首页 > 编程语言 > Java开发

java练习题十一道 -- for循环(上)

2018-03-31 14:35 357 查看
**1.可以从控制台连续输入数字,当输入的数字为0时不可以再输入。**
//思路 : 不知道输入次数 只要结果不为零就可以一直输入
Scanner sc = new Scanner(System.in);   //控制台
System.out.println("请输入数字");
while(true){
int sum = sc.nextInt();
if (sum == 0){
System.out.println("你输入了0 GG~");    //输入了0就结束啦 结束当前循环
break;
}
}
**2.任意输入一个整数(小于10位),求它一共有多少位。**
//思路:对输入的数字用最大位数(9位数)取整 ,如果结果为0说明输入的数字里没有九位数  那么就用八位数对其取整.........
System.out.println("请输入数字(不要超过十位数哦)");
int sum = sc.nextInt();
int s = 0;     //记录器
for( int x =100000000 ; x/sum !=0; x/=10 ) {s++;}System.out.println( 9-s);   //最大位数-循环次数==当前位数
**3.本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少**
//思路:这应该是最简单的一道题......本年本金+利息就是下一年的本金 累计五年就可以了
double sum = 0;       //因为涉及到利息 会有小数 所以这里用double
for( double principal = 10000,year =0; year<5 ;year++) {
principal = principal + principal*0.003;
//principal *=(1+0.003);
sum = principal;}System.out.println("五年后的本金是"+sum+"元");
//PS:现在知道为什么学java要数学好了.....我竟然把公式写成了本金=本金+本金/0.003...亏死
**4.计算1000以内所有不能被7整除的整数之和。**
//思路 只要不能整除7数字相加起来就可以了,说整除就想到取余 只要余数不是0那就是不能被整除
int s= 0;      //计数器
for(int sum=1; sum<=1000;sum++){
if(sum%7!=0){
s = sum +s;}
}
System.out.println(s);
**5.用for画一个圣诞树**
//三部分 行 列 每行递减的空格数量
for(int ln = 0;ln <5;ln++){  //外层行数
for(int space = 5;space>ln;space--){   //第一样前面五个空格,第二行前面四个,这个循环执行完了去下一个循环
System.out.print(" ");   //print  去掉ln  同行输出
}
for(int row =0;row<=ln;row++){    //内层列数
System.out.print("* ");
}
System.out.println();
}
**6.计算 1+2-3+4-5+6-7....+100的结果**
//注意审题..是1加二减三加四减五,不是加二加三。这个只要偶数累加减去奇数就好了,注意1是正数不是负数
int s=0;  //计数器
for(int sum = 2; sum <=100;sum++){
if(sum%2 ==0){   //说明是偶数
s+=sum;
}else if(sum%2 != 0){
s-=sum;
}
}System.out.println(s+1);
**7.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)。**
//思路 起始为8,用while或者du..while都可以,每次翻倍就好 还有注意单位换算....1m=1000mm
int sum = 8;
int s = 0;  //累加器
do{
sum *=2;
s++;
}while(sum<=884813000);
System.out.println("需折叠"+s+"次");
*8.从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*1. **
// 获取输入的数字 然后累乘就好啦
int sum=sc.nextInt(); //从控制台获取数字 上面已经写过这里就不写啦
int s =1; //存贮值的,因为是累乘,所以不能为0
for(;sum>=1;sum--){ //上面定义了初始变量的值,这里可以不用写
s *= sum;
}
System.out.println(s);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: