一.题目
二.分析与思路
本题考察循环和条件判断,有以下几点注意:在奇数偶数数量上,虽然奇数比偶数少一,但是仍然要重新设定一个变量表示,不然m减一的时候,m-1也会减一,导致奇数不够;数列自变量单独设立,在循环内部自增,但不是循环变量;由于没有明确循环变量,建议使用while函数;条件一定是数量都大于0,而不是不等于0,由于奇数偶数数量差一,不一定保证全零,如果出现负数,会进入无限循环!
三.代码实现
#include<bits/stdc++.h>//万能头文件
int f(int n) {
return 3 * (n - 1) * (n - 1) + 2 * (n - 1) + 1;
}//数列函数
int main()
{
int m;//偶数个数
scanf("%d",&m);
int n = m - 1;//奇数个数
int odd = 0;//奇数总数
int even = 0;//偶数总数
int i = 1;//数列自变量
while (m > 0 || n > 0) {//当m,n均到达0时,停止循环
if (f(i) > 100 && f(i) % 2 == 0 && m>0) {//偶数
even += f(i);
m--;//找到一个偶数后,数量减1
}
else if (f(i) > 100 && f(i) % 2 != 0 && n>0) {//奇数
odd += f(i);
n--;//找到一个奇数后,数量减1
}
i++;//数列自变量加1,判断下一个数列值
}
printf("%d %d",even, odd);
return 0;
}
四.评价
比较简单的基础题,适合练习。