求其递归公式
巧克力1美元一个,每一个巧克力都有一个代金券,7个代金券换1个巧克力,给你n美元,总结一个公式求能吃多少巧克力
[解决办法]
这个题目不用迭代更好解决吧。参考下面代码:
#include <iostream>using namespace std;int main(void){ int money; cout << "输入美元数:" << endl; cin >> money; int m = money; int n = 0; do { n += m / 7; m = m / 7 + m % 7; } while(m >= 7); cout << "可吃巧克力数量:" << money + n << endl; return 0;}
[解决办法]
递归的写法(未严格验证,请楼主自验):
#include <iostream>using namespace std;int chocolates(int money, int coupon){ if(money == 0 && coupon < 7) { return 0; } coupon += money; return money + coupon / 7 + chocolates(0, coupon / 7 + coupon % 7);}int main(void){ int money; cout << "输入美元数:" << endl; cin >> money; cout << "可吃巧克力数量:" << chocolates(money, 0) << endl; return 0;}
[解决办法]
如下:
#include <stdio.h>//代金券转换成巧克力int djq_to_qkl(int djq){ int qkl = djq/7; while(djq >= 7) return qkl += djq_to_qkl(djq/7 + djq%7);}int main(void){ int dollar = 20; int qkl = dollar + djq_to_qkl(dollar); printf("chocolates is %d\n",qkl); return 0;}
[解决办法]