题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2015
题目大意:一个长度为n的偶数序列,以m一组求平均数,剩余的且不足m的求平均数,输出平均数的序列。
1 #include<stdio.h> 2 int main() 3 { 4 int n,m,i,t,a,s; 5 while(scanf("%d%d",&n,&m)!=EOF) 6 { 7 t=0; 8 a=0; 9 s=0; 10 if(n%m!=0) 11 { 12 for(i=1; i<=n; i++) 13 { 14 t++; 15 a=2*i; 16 s=((s*(t-1)+a)/t); 17 if(t==m) 18 { 19 printf("%d ",s); 20 s=0; 21 t=0; 22 } 23 } 24 printf("%d ",s); 25 } 26 else 27 { 28 for(i=1; i<=n; i++) 29 { 30 t++; 31 a=2*i; 32 s=((s*(t-1)+a)/t); 33 if(t==m) 34 { 35 printf("%d",s); 36 s=0; 37 t=0; 38 if(i<n) 39 printf(" "); 40 else 41 printf(" "); 42 } 43 } 44 } 45 } 46 return 0; 47 }
时间久了,想的多了,方法自然也就多了呢!!
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main () 7 { 8 int a[101],n,m,sum,ans,flag; 9 for (int i=0; i<101; i++) 10 { 11 a[i]=i*2; 12 } 13 14 while (~scanf("%d%d",&n,&m)) 15 { 16 sum=0; 17 for (int i=1; i<=n; i++) 18 { 19 //sum+=a[i]; 20 //if(i==n) 21 if (i%m==0) 22 { 23 sum+=a[i]; 24 if (i!=n) 25 { 26 printf ("%d ",sum/m); 27 } 28 else 29 { 30 //if (i<) 31 printf ("%d ",sum/m); 32 } 33 sum=0; 34 ans=i; 35 } 36 else 37 sum+=a[i]; 38 } 39 if (sum!=0) 40 printf ("%d ",sum/(n-ans)); 41 } 42 return 0; 43 }
在存放一个代码0.0
1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 int main() 7 { 8 int n,m; 9 while(~scanf("%d%d",&n,&m)) 10 { 11 int sum=0; 12 int ans=0; 13 for(int i=2; i<=n*2; i+=2) 14 { 15 sum+=i; 16 if(i==n*2) 17 { 18 printf("%d ",sum/(n-ans)); 19 break; 20 } 21 if((i/2)%m==0) 22 { 23 printf("%d ",sum/m); 24 sum=0; 25 ans=i/2; 26 } 27 } 28 } 29 return 0; 30 }