作业比赛编号 : 100000590 - 《算法笔记》5.3小节——数学问题->分数的四则运算 问题 A: 分数矩阵
献给理解能力和我一样堪忧的你(不差者忽略):
理解能力堪忧的我最初竟没理解题意,最终经过悟,才最终懂得意思,发现矩阵的数关于对角线对称
正确代码:
#include<stdio.h>
int main()
{
float N;
while(scanf("%f",&N)!=EOF){
if(N==0) break;
double sum=0;
sum+=N;
for(int i=0;i<N-1;i++)
{
sum=sum+(i+1)*2.0*1/(N-i);
}
printf("%.2lf\n",sum);
}
return 0;
}
/**************************************************************
Problem: 1067
User: #########
Language: C++
Result: 正确
Time:6 ms
Memory:1192 kb
****************************************************************/
错误代码
#include<stdio.h>
int main()
{
float N;
while(scanf("%f",&N)!=EOF){
if(N==0) break;
double sum=0;
double fen=0;
sum+=N;
for(int i=0;i<N-1;i++)
{
fen=1/(N-i);
sum=sum+(i+1)*2.0*fen;
}
printf("%.2lf\n",sum);
}
return 0;
}
/**************************************************************
Problem: 1067
User: ########
Language: C++
Result: 答案错误
****************************************************************/
仅for里的内容不同,由于分步运算会导致当运算的数据量很大时产生错误,由此得到提示,当进行大量数据运算时尽量不要分步骤进行
for(int i=0;i<N-1;i++)
{
fen=1/(N-i);
sum=sum+(i+1)*2.0*fen;
}