3 条题解
-
1
免责声明
代老师的代码极为完整、完善,易于理解,通俗易懂,符合广大中学生的思维,并且简洁明了,是我们应当学习的典范。故本篇题解仅对其进行注释,无任何个人代码。代码均来自下篇 33DAI 的代码。
#include <bits/stdc++.h> using namespace std; //递归函数,返回 n 的右边的第 k 位 int d(int n, int k) { if (k==1) //当前位数为1的时候,即所求的第k位已经到第1位 return n%10;//则输出当前数字的个位数(对10求余) return d(n/10,k-1); //否则递归调用该数字/10,并且目标位数-1 //举例 12345 3 //第一次递归 n=12345 k=3,递归调用12345/10: //第二次递归 n=1234 k=2,递归调用1234/10: //第三次递归 n=123 k=1 满足条件,则输出对10求余的个位数 //答案则为3 //int型进行除法不存在四舍五入,比如18/10=1.8,但int中则为1而非2 } int main() { int n,k; cin>>n>>k; cout<<d(n,k)<<endl; //调用递归 return 0; }
- 1
信息
- ID
- 384
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 116
- 已通过
- 77
- 上传者