练习1:
使用公式C=(5/9)(F-32)打印下列华氏温度与摄氏温度对照表。
0 -17
20 -6
40 4
60 15
80 26
100 37
120 48
140 60
160 71
180 82
200 93
220 104
240 115
260 126
280 137
300 148
思考:
加入制表符使数据输出更整齐;
让摄氏温度保留一位小数。
public class Temperature { public static void main(String args[]) { float f, c; int lower, upper, step; lower = 0; upper = 300; step = 20; f = lower; while(f<=upper) { c = (float)((5.0/9) * (f - 32)); //不能将double转换成float,说明浮点型常量(如5.0)java默认为double型 //System.out.println(f+"\t"+c); System.out.printf("%d\t%.1f\n", (int)f, c); f = f + step; } } }
分析:
开始是因为JDK的环境变量没有配置正确,导致无法运行。然后是没有弄清楚Java的默认类型,不会强制类型的转换。
练习2:
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
public class Flower{ public static void main(String args[]){ int i,x,y,z; for(i=100;i<1000;i++) { x=i/100; //百位数的表示 y=i/10%10; //十位数的表示 z=i%10; //个位数的表示 if(i==x*x*x+y*y*y+z*z*z) //判断各位数的立方和是否等于该数本身 System.out.println(i); } } }
分析:
对某个三位数的各个位的表示不熟练。
练习3:
求1+2!+3!+...+20!的和
public class Factorial{ public static void main(String args[]){ int i,sum=0,s=1; for(i=1;i<=20;i++) { s=s*i; //每个数的阶乘 sum=sum+s; //1到20各个数阶乘的和 } System.out.println(sum); } }
分析:
注意阶乘运算的表示形式。