杭电ACM2015,提示编译错误,求解!
TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmissio...
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8019 Accepted Submission(s): 3528
Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
Sample Input
3 2
4 2
Sample Output
3 6
3 7
#include<stdio.h>
int main()
{
int n,m,i,sum,a[1000],aver[1000],k,j;
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=1,sum=0,j=0;i<=n;i++)
{
a[i]=2*i;//初始化
sum=sum+a[i];
j=i/m;
if(i%m==0)//如果i是m的倍数
{
aver[j]=sum/m;
sum=0;//sum清零
}
if(i%m!=0&&(n-i)<m)
{
if(i==n&&n>m)aver[j+1]=sum/(n-m);
}
if(n<=m)
{
k=j+1;aver[k]=sum/n;
}
}
for(i=1;i<=k;i++)
{
if(aver[i]==0)continue;
printf("%d",aver[i]);
if(i!=k)printf(" ");
}
printf("\n");
}
return 0;
} 展开
Total Submission(s): 8019 Accepted Submission(s): 3528
Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
Sample Input
3 2
4 2
Sample Output
3 6
3 7
#include<stdio.h>
int main()
{
int n,m,i,sum,a[1000],aver[1000],k,j;
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=1,sum=0,j=0;i<=n;i++)
{
a[i]=2*i;//初始化
sum=sum+a[i];
j=i/m;
if(i%m==0)//如果i是m的倍数
{
aver[j]=sum/m;
sum=0;//sum清零
}
if(i%m!=0&&(n-i)<m)
{
if(i==n&&n>m)aver[j+1]=sum/(n-m);
}
if(n<=m)
{
k=j+1;aver[k]=sum/n;
}
}
for(i=1;i<=k;i++)
{
if(aver[i]==0)continue;
printf("%d",aver[i]);
if(i!=k)printf(" ");
}
printf("\n");
}
return 0;
} 展开
2个回答
展开全部
感觉你的算法太复杂了,其实归纳法,归纳下就行了。看下我写的代码看看吧。
#include<iostream>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
int i=0;
while(n>0)
{
if(n>m||n==m)cout<<m+1+(i++)*2*m<<' ';
else cout<<m+1+(i++)*2*m-(m-n)<<' ';
n=n-m;
}
cout<<endl;
}
return 0;
}
我提交了,不知道为什么会这样结果Presentation Error
#include<iostream>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
int i=0;
while(n>0)
{
if(n>m||n==m)cout<<m+1+(i++)*2*m<<' ';
else cout<<m+1+(i++)*2*m-(m-n)<<' ';
n=n-m;
}
cout<<endl;
}
return 0;
}
我提交了,不知道为什么会这样结果Presentation Error
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询