每日刷题(十一)
蓝桥杯第七届C语言B组省赛习题
习题B:生日蜡烛
我们可以立刻想到等差数列求和,那就是Sn = (n0 + n)* (n - n0 + 1)/ 2
Sn = 236,很明显这里有两个未知数,所以我选择用穷举法
详细的C代码如下
#include<stdio.h>
int main()
{
int i, j, flag = 1;
for(i = 1; i <= 100 && flag == 1; i++)
for(j = 3; j <= 100; j ++)
if((i + 1 + j) * (j - (i + 1) + 1) / 2 == 236)
{
flag = 0;
break;
}
printf("%d\n", i);
return 0;
}
运行结果是26
C++做法:
#include<iostream>
using namespace std;
int main()
{
int sum;
int flag = 0;
int i;
for(i = 1; i <= 100; i++)
{
sum = i;
flag = 0;
for(int j = i + 1; j <= 100; j++)
{
sum += j;
if(sum == 236)
{
flag = 1;
break;
}
}
if(flag)
{
break;
}
}
cout << i << endl;
}
样例运行结果:
其实做了这道题,也心生遗憾,我都有有很长一段时间过生日没点蜡烛了,希望今年能过得刺激一点,吃个蛋糕!