3 条题解

  • 1
    @ 2022-9-29 21:30:30

    免责声明

    代老师的代码极为完整、完善,易于理解,通俗易懂,符合广大中学生的思维,并且简洁明了,是我们应当学习的典范。故本篇题解仅对其进行注释,无任何个人代码。代码均来自下篇 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;
    }
    
    • @ 2022-9-29 21:45:33

      我一直以为老师的姓氏是戴

  • 0
    @ 2023-2-25 10:30:06
    我可是一个糕手
    #include <bits/stdc++.h>
    using namespace std;
    int f(int n, int k)
    {
        if (k == 1)
            return n % 10;
        return f(n / 10, k - 1);
    }
    int main()
    {
        int n, k;
        cin >> n >> k;
        cout << f(n, k) << endl;
        return 0;
    }
    
    • 0
      @ 2022-9-29 20:59:38
      #include <bits/stdc++.h>
      using namespace std;
      //返回 n 的右边的第 k 位
      int d(int n, int k)
      {
          if (k == 1)
              return n % 10;
          return d(n / 10, k - 1);
      }
      int main()
      {
          int n, k;
          cin >> n >> k;
          cout << d(n, k) << endl;
          return 0;
      }
      
      • 1

      信息

      ID
      384
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      (无)
      递交数
      116
      已通过
      77
      上传者