前言
一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时总共赶了多少只鸭子?经过每个村子卖出多少只鸭子?
源代码
#include<iostream>
using namespace std;
int main()
{
int village;
int duck = 2;
int count = 0;
cout << "经过第7个村庄后,鸭子剩余" << duck << "只" << endl;
for (village = 0; village<7; village++)
{
count = (duck + 1) * 2;
duck = count;
cout << "经过第" << 7 - village << "个村庄时卖出" << (count + 1) / 2 + 1 << "只,"
<< "剩余" << duck - ((count + 1) / 2 + 1) << "只" << endl;
}
cout << "出发前的鸭子总数为" << count << "只" << endl;
return count;
}
总结
使用递归