训练一: 偶数求和
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>
#include<stdlib.h>
int main()
{
int n, m;
while (scanf("%d%d", &n, &m) != EOF)
{
int t = n / m;
int number = n%m == 0 ? n / m : n / m + 1;
long long *ptos = calloc(number, sizeof(long long int));
int i, j = 2, k = 1, cnt = 0;
while (t--)
{
for (i = 0; i < m; i++, k++)
*(ptos + cnt) += j*k;
*(ptos + cnt) /= m;
cnt++;
}
n %= m;
for (i = 0; i<n; i++, k++)
*(ptos + cnt) += j*k;
if (n != 0) *(ptos + cnt) /= n; //n不能为0
for (i = 0; i < number; i++)
{
if (i == number - 1) printf("%lld\n", *(ptos + i));
else printf("%lld ", *(ptos + i));
}
}
return 0;
}
测试结果: 通过
训练二: 母牛的故事
Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n;
int p[55] = { 0,1,2,3,4, };
while (scanf("%d", &n) != EOF, n)
{
int s1 = 1, s2 = 0;
int i,j=0,k=0;
for (i = 4; i <= n; i++)
{
p[i] = p[i - 3] + p[i - 1];
}
printf("%d\n", p[n]);
}
return 0;
}
运行结果:
测试结果: 通过