1题目:
5?只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第?11?只猴子醒来,把香蕉均分成?55?堆,还剩下?11?个,就吃掉并把自己的一份藏起来继续睡觉。
第?22?只猴子醒来,把香蕉均分成?55?堆,还剩下?22?个,就吃掉并把自己的一份藏起来继续睡觉。
第?33?只猴子醒来,把香蕉均分成?55?堆,还剩下?33?个,就吃掉并把自己的一份藏起来继续睡觉。
第?44?只猴子醒来,把香蕉均分成?55?堆,还剩下?44?个,就吃掉并把自己的一份藏起来继续睡觉。
第?55?猴子醒来,重新把香蕉均分成?55?堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
运行限制
2暴力求解?
#include <iostream>
using namespace std;
int check(int s_banana) {//当函数满足所有条件的时候返回True
int temp = s_banana % 5;//定义每只猴子平分后剩下的香蕉
if (temp == 1) {
s_banana = s_banana - temp - (s_banana - temp) / 5;
temp = s_banana % 5;
if (temp == 2) {
s_banana = s_banana - temp - (s_banana - temp) / 5;
temp = s_banana % 5;
if (temp == 3) {
s_banana = s_banana - temp - (s_banana - temp) / 5;
temp = s_banana % 5;
if (temp == 4) {
s_banana = s_banana - temp - (s_banana - temp) / 5;
temp = s_banana % 5;
if (temp == 0&&s_banana!=0) {
return 1;//满足所有条件;返回True;
}
}return 0;
}return 0;
}return 0;
}return 0;//如果不满足任意条件则返回False
}
int main()
{
for (int s_banana= 0; s_banana <= 4000; s_banana++)//暴力求解50到4000满足条件的香蕉数目
{
if (check(s_banana)) {//调用函数看是否满足所有条件
cout << s_banana << endl;
break;
}
}
return 0;
}
3总是遗忘的问题:未定义的标识符
这类问题的原因之一:? ?
标识符不在范围之内
解决方法:
将主函数放在定义的函数的后面;因为C++在编译程序的时候遵从顺序规则。
|