李白街上走,提壶去买酒。遇店加一倍,见花喝一斗。N遇店和花,喝光壶中酒。借问此壶中,原有多少酒。
题目:李白街上走,提壶去买酒。遇店加一倍,见花喝一斗。N遇店和花,喝光壶中酒。借问此壶中,原有多少酒。
编程输入N,输出原来的酒数和遇店、遇花的过程。
例如:输入N=3,输出:原酒数为1斗;第1次遇店加一倍即加1斗,剩2斗;第1次遇花喝1斗,剩1斗;第2次遇店加一倍即加1斗,剩2斗;第1次遇花喝1斗,剩1斗。。。(此处原酒数只为举例,并不正确)
代码:
#include<iostream> using namespace std; int main() { int n; cin >> n; float a = 0; for (int i = 0;i < n;i++) { a = a + 1; a = a / 2; } cout << "原酒数为"<<a<<"斗"<<endl; for (int i =1 ;i <= n;i++) { cout << "第" << i<< "次遇店加一倍" << "即加"<<a<<"斗"<<",剩"<<a*2<<"斗"<<endl; a = a * 2; cout << "第" << i << "次遇花喝一斗" << "剩" << a-1.0<< "斗" << endl; a = a - 1; } return 0; }