hdoj-2015 偶数求和【水】
2015-08-28 15:54
232 查看
偶数求和
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 58769 Accepted Submission(s): 25679
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 题目解析: n<m时 按实际数量求平均值 n>m时 1.n%m==0时 n个数恰好被分成n/m组数据,每组有m个数 2.n%m!=0时,分成n/m+1组数,n/m组每组有m个数,剩下的一组不够m个数 按实际数量求平均值 这道题另外需要注意的地方就是 输出时 数与数之间有一个空格。两种实现输出的方法:例:若要输出n个数, 1.数的前面有空格,即把空格和它后面的数看成一个整体 [code]printf("%d",m);//数的序号是0--(n-1),先输出第一个数 for(i=1;i<n;i++) printf(" %d",m); printf("\n");2.把空格和它前面的数看成一个整体 for(i=1;i<n;i++)//数的序号是1--n,先输出前n-1个数
printf("%d ",m);
printf("%d\n",m);//然后输出最后一个数 [/code]
AC代码:
#include<stdio.h> int main() { int n,m,i,j,sum,ans; while(~scanf("%d%d",&n,&m)) { int temp=2; while(n>=m)//n>m时 若n%m==0恰将数据分成n/m组 否则分成n/m+1组 { for(i=0;i<n/m;i++)//按m个数输出平均值的次数 { sum=0;//每次都要归0 for(j=0;j<m;j++) { sum+=temp; temp+=2; } ans=sum/m; n-=m;//剩下的 待处理的数 的个数n if(n!=0) printf("%d ",ans); else printf("%d\n",ans); } } while(n!=0) { sum=ans=0; for(i=0;i<n;i++) { sum+=temp; temp+=2; } ans=sum/n; printf("%d",ans); printf("\n"); break; //否则形成死循环 超时 } } return 0; }
相关文章推荐
- 51操作系统之延时实现源代码
- C语言变量存储区域 进程内存布局
- Unable to resolve target 'android-XX' 类似的错误。
- 加入购物车的飞入效果
- 部署node程序并维持正常运行时间
- 获取Windows系统时间
- Android 获取设备宽高分辨率
- oracle中delete、truncate、drop的区别
- js+CSS 实现选项卡
- 记录几个自己做的xml效果
- iOS开发陷阱之NSString - compare
- 论文提要“Taking a Deeper Look at Pedestrians”
- UE4 Setting Device Profiles
- 窗口中创建WebBrowser
- 如何把java代码,打包成jar文件以及转换为exe可执行文件
- ios开发之 常用正则表达式
- 网络技术新名词笔记(by quqi99)
- 死循环之间穿梭(51操作系统之抢占式任务切换)
- 【Material Design视觉设计语言】UI组件设计(十一):进度条
- Linux 学习笔记