目录
题目来源:
第一题:啤酒和饮料(枚举)
#include<iostream>
using namespace std;
int main()
{
for (int i = 0; i < 82.3 / 2.3; i++)
{
for (int j = 0; j < 82.3/1.9; j++)
{
if (2.3 * i + 1.9 * j == 82.3)
{
cout << i << endl;
return 0;
}
}
}
}
第二题:切面条(数学)
解析:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
//计算对折拐弯处数目(等比公式推导)
int a = pow(2,10)-1;
//无对折情况下数目
int b = pow(2,11);
//最后面条数目
cout << b-a;
return 0;
}
第三题:李白打酒(dfs)
#include<iostream>
using namespace std;
int ans;
void dfs(int x, int y, int z)
{
if (x < 0 || y < 0) return;
if (x == 0 && y == 1 && z == 1) ans++;
if (x > 0) dfs(x - 1, y, z * 2);
if (y > 0) dfs(x, y - 1, z - 1);
}
int main()
{
dfs(5, 10, 2);
cout << ans;
return 0;
}
第四题:史丰收速算
//计算个位
int ge_wei(int a)
{
if(a % 2 == 0)
return (a * 2) % 10;
else
return (a * 2 + 5) % 10;
}
//计算进位
int jin_wei(char* p)
{
char* level[] = {
"142857",
"285714",
"428571",
"571428",
"714285",
"857142"