此处有目录↑
基本都是暴力搜索解决,最后两道算法题不会 - -
1.父亲和儿子 (枚举)
父亲年龄是两位数,且比儿子大27岁,问有多少种可能的情况?(父亲30岁,儿子3岁也符合题意)
直接枚举父亲年龄即可
答案是:7
#include <cstdio>
using namespace std;
int main() {
int ans=0;
for(int i=1;i<=9;++i)
for(int j=0;j<=9;++j)
if(10*i+j-10*j-i==27)
++ans;
printf("%d\n",ans);
}
2.生日蜡烛 (枚举)
一个人从某一岁开始每年生日都在蛋糕上插上与年龄数值相同的蜡烛,下载他总共插了236根蜡烛,问他从多少岁时开始插蜡烛?
直接从1岁开始枚举,找到答案就停止
不过这样答案是:26,后来看到网上说236也可以,这估计是个坑点
#include <cstdio>
using namespace std;
int solve() {
int sta=0,sum,cur;
while(1) {
sum=cur=sta;
while(sum<236)
sum+=++cur;
if(sum==236)
return sta;
++sta;
}
}
int main() {
printf("%d\n",solve());
}
3.填格子 (DFS)
有一个含有10个格子的图形,现用0~9填充,连续的数不能填充在相邻的格子中(包括对角线相邻),问有多少种填充方法?
dfs即可,注意剪枝