1+2/1+2/2+2/1+3/1+3/2+3/3+3/2+3/1+......+100/1+100/2+......100/100+100/99+.....+100/1

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:58:39

1+1*2+1*3+1*4+……+1*100
=1+2+3+……+100
=(1+100)*50
=5050

用C语言编程来解答! 代码如下!
main()
{
int i,j,k;
float num=0,temp=0;
clrscr();
for(i=1;i<=100;i++)
{ for(j=1;j<i;j++)
temp=temp+i/j;
for(j=i;j>=1;j--)
temp+=i/j;
num+=temp;
}
printf("the num is:%f\n");
getch();
}

5050

谁给的拉圾程序,错误都有,而且你自己斗下前面的数也知道你的算式是错的嘛!!1 2/1 2/2 2/1等于1 1*2吗????算清楚好不好.还有后面那个程序就看你的后面点代码就知道是个外行printf("the num is:%f\n");你这样是在输出什么就想输"the num is :"你的%f代表的什么,你就省略了吗?结果还有5050?
你这个程序错误不止是你省略了%f ,num;这点;而且算法逻辑上也存在问题,而且你的变量j随着你的内测两个循环都用j这个变量在不知不觉中你第二循环改变了第一次j的值,当你再返回到{ for(j=1;j<i;j++)这里时,你的j还是你所耍要的j吗??本来上你的算法上也有错你把j换掉也得不出正确的答案,请仔细想想吧!

假如你会用C代码这题就好做了!
你就会发现2/1 3/1 3/2 4/3 4/2 4/1 等等都加了两次本身 1/1 /2/2 3/3......100/100等加了一次这些就可以在后面直接加上100就好,前面的规律也好找了一个简单的双重循环就能得出结果.
这是我写的C代码,可以在C编译器上运行得出结果;
#include<stdio.h>