1082. 猴子吃桃子
问题描述
猴子吃桃子问题:猴子第一天摘下若干个桃子,当即吃了一半还不过瘾,又多吃了一个;第二天又将剩下的桃子吃掉一半又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到了第十天想再吃时,见只剩下一个桃子,求第一天共摘了多少个桃子?
输出
一个整数,第一天共有多少个桃子。
#include <bits/stdc++.h>
using namespace std;int dfs(int x, int sum){if(x == 1)return sum;return dfs(x - 1, (sum + 1) * 2);
}int main(){cout << dfs(10, 1);return 0;
}
1265. 爱因斯坦的数学题
问题描述
爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨 2 阶,则最最后剩一阶,若每步跨 3 阶,则最后剩 2 阶,若每步跨 5 阶,则最后剩 4 阶,若每步跨 6 阶则最后剩 5 阶。
只有每次跨 7 阶,最后才正好一阶不剩。
请问这条阶梯最少共有多少阶?
输出
这条阶梯最少的阶数。
#include <bits/stdc++.h>
using namespace std;double n;
int dfs(int x){if(x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0)return x;return dfs(x + 1);
}int main() {cout << dfs(1);return 0;
}
1395. 小丽找数?
问题描述
小丽同学想在 1∼n 中找出这样的数,这个数的各个位的和不能被 2 整除也不能被 5 整除,比如 3、12、25、30、100 。这些数都满足各个位的和不能被 2 和 5 整除。
请你编程找出 1∼n 中这些数有多少个?
输入
一个整数 n(n ≤ 9999)。
输出
1∼n 中满足条件的数的个数。
样例
输入
50
输出
20
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;
void dfs(int x){if(x > n)return ;int sum = 0, t = x;while(t){sum += t % 10;t /= 10;}if(sum % 2 != 0 && sum % 5 != 0)conut++;dfs(x + 1);return ;
}int main() {cin >> n;dfs(1);printf("%d", conut);return 0;
}
1083. 回文数
问题描述
回文数的定义为:如果把一个数的各个数位上的数字颠倒过来得到的新数与原数相等,则此数是回文数。例: 7,22,131,2112,31013,…都是回文数。对任意给出的一个整数 n ,经过一系列的处理,最后都能成为回文数。
处理的方法是,该数加上它的颠倒数,
例如:n = 176 ;
第一次处理后 176+671=847 ;
第二次处理后 847+748=1595 ;
第三次处理后 1595+5951=7546 ;
第四次处理后 7546+6457=14003 ;
第五次处理后 14003+30041=44044 ;
此时成为回文数,共进行 5 次处理。
问题:给出 n 后,求出使该数按照以上规则进行一系列处理后成为回文数的最少操作次数。
输入
n 一个整数(1 ≤ n ≤ 1000000 )。
输出
使 n 成为回文数的最少处理次数。
若开始给出的 n 是回文数,则输出 0 (即不需任何处理)。
样例
输入
67
输出
2
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;
bool check(int n){int t = n, a = 0;while(t){a = a * 10 + t % 10;t /= 10;}if(a == n)return 1;else return 0;
}void dfs(int x){if(check(x))return ;int t = x, a = 0;while(t){a = a * 10 + t % 10;t /= 10;}dfs(x + a);conut++;return ;
}int main() {cin >> n;dfs(n);cout << conut;return 0;
}
1066. 字符图形2-星号直角
问题描述
打印字符图形。
输入
一个整数( 0 < n < 10 )。
输出
一个字符图形。
样例
输入
3
输出
*
**
***
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;void dfs(int x){if(x > n)return ;for(int j = 1; j <= x; j++){cout << '*';}cout << endl;dfs(x + 1);return ;
}int main() {cin >> n;dfs(1);return 0;
}
1782. 字符图形2-星号倒直角
问题描述
请打印 n 行的星号倒直角三角形。
输入
一个整数 n( n ≤ 10 )。
输出
输出如下方图所示 n 行的星号倒直角三角形。
样例
输入
3
输出
***
**
*
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;void dfs(int x){if(x < 1)return ;for(int j = 1; j <= x; j++){cout << '*';}cout << endl;dfs(x - 1);return ;
}int main() {cin >> n;dfs(n);return 0;
}
1783. 数字直角(1)
问题描述
请打印 n 行的数字直角三角形。
输入
一个整数 n(n < 10)。
输出
输出如下方图所示 n 行的数字直角三角形。
样例
输入
3
输出
1
22
333
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;void dfs(int x){if(x > n)return ;for(int j = 1; j <= x; j++){cout << x;}cout << endl;dfs(x + 1);return ;
}int main() {cin >> n;dfs(1);return 0;
}
1784. 数字直角(2)
问题描述
请打印 n 行的数字直角三角形。
输入
一个整数 n(n < 10)。
输出
输出如下方图所示 nn 行的数字直角三角形。
样例
输入
3
输出
1
12
123
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;void dfs(int x){if(x > n)return ;for(int j = 1; j <= x; j++){cout << j;}cout << endl;dfs(x + 1);return ;
}int main() {cin >> n;dfs(1);return 0;
}
1008. 字符图形9-数字正三角
问题描述
输入一个整数打印字符图形。
输入
一个整数(0 < n < 10)。
输出
一个字符图形。
样例
输入
3
输出
1
222
33333
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;void dfs(int x){if(x > n)return ;for(int j = 1; j <= n - x; j++){cout << ' ';}for(int j = 1; j <= x * 2 - 1; j++){cout << x;}cout << endl;dfs(x + 1);return ;
}int main() {cin >> n;dfs(1);return 0;
}
1244. 请问一个正整数能够整除几次2
问题描述
请问一个正整数 n 能够整除几次 2?
比如: 4 可以整除 2 次 2 ,100 可以整除 2 次 2 , 9 可以整除 0 次 2 。
输入
从键盘读入一个正整数 n 。
输出
输出一个整数,代表 n 能够整除 2 的次数。
样例
输入
8
输出
3
#include <bits/stdc++.h>
using namespace std;int n, conut = 0;void dfs(int x){if(x % 2 != 0)return ;conut++;dfs(x / 2);return ;
}int main() {cin >> n;dfs(n);cout << conut << endl;return 0;
}