两道简单的程序题目,求高手看看

leisurelyCoder 2007-07-11 05:39:33
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);
}
}

帮忙看看
...全文
737 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
leisurelyCoder 2007-09-10
  • 打赏
  • 举报
回复
谢谢你们

分数太少了

没想到回帖的朋友挺多的

下次一定注意
leisurelyCoder 2007-07-12
  • 打赏
  • 举报
回复
非常感谢各位!
这次分数少了点
以为简单的问题一个人回答就可以了!
呵呵,再次感谢各位
grass_12 2007-07-12
  • 打赏
  • 举报
回复
double sum=0;
for(int fm =1;fm<=100;fm++){
sum=sum+1.0/fm;
}
System.out.print("1+1/2+1/3+1/4....+1/100的结果是:" + sum);
IhaveGotYou 2007-07-12
  • 打赏
  • 举报
回复
a^2-b^2=(a+b)(a-b)
leisurelyCoder 2007-07-12
  • 打赏
  • 举报
回复


public class test {
public static void main(String[] args) {
int sum=0;
for(int n=1;n<101;n++){
sum+=(n*n)-((n+1)*(n+1));
}
System.out.print("1的平方-2的平方+3的平方-4的平方...-100的平方,结果是:" + sum);
}
}





import java.lang.Math;
public class test {
public static void main(String[] args) {
int n,sum=0;
for(n=1;n<=100;n++){
System.out.println(n);
sum+=(Math.pow(-1,(n+1))) * (n * n);
}

System.out.print("1的平方-2的平方+3的平方-4的平方...-100的平方,结果是:" + sum);
}
}



我尝试着做第二道题目,但是我不知道着两种算法为什么不同
wisdom_qiurui 2007-07-11
  • 打赏
  • 举报
回复
private static double makeTestA(int n){
//.1^2-2^2+3^2....+99^2-100^2
double sum = 0.0;
int flg = 1;
if(n<1){
return sum;
}
for(int i =1;i<=n;i++){
sum += (flg)*(i*i);
flg = -flg;
}
return sum;
}
wisdom_qiurui 2007-07-11
  • 打赏
  • 举报
回复
private static double makeTest(int n){
double sum = 0.0;
if(n<1){
return sum;
}
for(int i =1;i<=n;i++){
sum += (double)1/i;
}
return sum;
}
任逍遥dmu 2007-07-11
  • 打赏
  • 举报
回复
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. ^是位移运算符,不是成方运算符。

dracularking 2007-07-11
  • 打赏
  • 举报
回复
^是异或
int n, sum = 0;
for (n = 1; n < 101; n += 2) {
sum += (n * n) - (n + 1) * (n + 1);
}
ljydomybest 2007-07-11
  • 打赏
  • 举报
回复
0000000000000
leisurelyCoder 2007-07-11
  • 打赏
  • 举报
回复
为什么不能用^表示呀??请您详细讲一下!谢谢
tanxd39 2007-07-11
  • 打赏
  • 举报
回复
第二题:
public static void main(String[] args) {
// TODO Auto-generated method stub
int n,sum=0;
for(n=1;n<101;n++){
System.out.println(n*n);
if(n%2==0){
sum+=-1*(n*n);
}else{
sum+=n*n;
}

}
System.out.print("1^2-2^2+3^2....+99^2-100^2的和是:" + sum);}
乘方不能用^表示.
leisurelyCoder 2007-07-11
  • 打赏
  • 举报
回复
谢谢,tanxd39(谈笑风声

第二道题目,我写的正确吗?
tanxd39 2007-07-11
  • 打赏
  • 举报
回复
第一题:
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);

}
你那样编译器算的整除!
leisurelyCoder 2007-07-11
  • 打赏
  • 举报
回复
我把int改成了double 这回结果是1.0,我想还是不正确的结果呀??

您再帮我看看吧,谢谢
hzcpig 2007-07-11
  • 打赏
  • 举报
回复
因为你的sum是int整型,应该用float或double,才能存储小数部分。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧