习题1:
求下列算式的值:
错误代码:
public class Jiandanlianxi { public static void main(String[] args) { double sum=0; for(int i=1;i<=1000;i++){ sum+=1/i; } System.out.println(sum); } }
此处输出结果为1.0;
因为for循环中,sum的结果sum=1/i;
从数学角度看1/i的结果永远是大于0小于1的小数;
但是在编程中,两个整数计算的结果永远是整数,也就是说不管1/i=0.XXX;结果都是0;
所以正确代码应是:
public class Jiandanlianxi { public static void main(String[] args) { double sum=0; for(int i=1;i<=1000;i++){ sum+=1/(i*1.0); } System.out.println(sum); } }
将i*1.0,就将int型转换为了double型,然后再与1相运算,得到正确答案
习题2:
编制程序要求输入整数a和b,若 大于100,则输出 百位以上的数字,否则输出两数之和。
import java.util.Scanner; public class Ahebdezhi { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); int b=scanner.nextInt(); if(a*a+b*b>100){ System.out.println((a*a+b*b)/100); }else{ System.out.println(a+b); } } }
输入5和7 (5*5+7*7=74<100)结果:
符合条件
输入10和7 (10*10+7*7=149>100)结果:
符合条件