两道简单的程序题目,求高手看看
1.1+1/2+1/3+1/4+1/5+...+1/100
2.1^2-2^2+3^2....+99^2-100^2的结果是
public class test {
public static void main(String[] args) {
int sum=0;
for(int fm =1;fm <=100;fm++){
sum+=1/fm;
}
//System.out.print( "1+1/2+1/3+1/4....+1/100的结果是: " + sum);
}
}
结果是1,我觉得肯定不对!
public class test {
public static void main(String[] args) {
int n,sum=0, i=-1;
for(n=1;n <101;n++){
sum+=i^(n+1)*(n^2);
}
System.out.print( "1^2-2^2+3^2....+99^2-100^2的和是: " + sum);
}
}
帮忙看看
------解决方案--------------------因为你的sum是int整型,应该用float或double,才能存储小数部分。
------解决方案--------------------第一题:
public static void main(String[] args) {
// TODO Auto-generated method stub
double sum=0;
for(double fm =1;fm <=100;fm++){
//System.out.println(1/fm);
sum=sum+1/fm;
}
System.out.println( "1+1/2+1/3+1/4....+1/100的结果是: " + sum);
}
你那样编译器算的整除!
------解决方案--------------------float sum=0;
for(int fm =1;fm <=100;fm++){
sum+=1.0/fm;
}
System.out.print( "1+1/2+1/3+1/4....+1/100的结果是: " + sum);
我的结果:
1+1/2+1/3+1/4....+1/100的结果是:5.187378
long n,sum=0, i=-1;
for(n=1;n <101;n++){
sum+=Math.pow(i, n+1)*(n*n);
错误:
1. sum 应该是float,不是int
2. ^是位移运算符,不是成方运算符。
------解决方案--------------------a^2-b^2=(a+b)(a-b)