4 条题解

  • 1
    @ 2023-10-27 21:40:03

    解法一,全模拟

    #include <iostream>
    int main(){
        int m,k,day=0; std::cin>>m>>k;
        while(m>=k){
            if(day%k==0)m++;
            day+=1; m-=1;}
        std::cout<<day+m; return 0;}
    

    解法二,每次过k天

    #include <iostream>
    int main(){
        int m,k,day=0; std::cin>>m>>k;
        while(m>=k){
            day+=k;
            m-=k-1;}
        std::cout<<day+m; return 0;}
    

    解法三,计算

    #include <iostream>
    int main(){
        int m,k,day=0; std::cin>>m>>k;
        while(m>=k){
            day+=m/k*k;       //初步计算最多能跳x*k天
            m=m/k+m%k;}    //m等于m/k(满k所补贴的钱)+m%k(不满k,剩下的钱)
        std::cout<<day+m; return 0;}
    

    计算量不大的话,推荐使用解法二

    • 0
      @ 2024-2-1 17:19:11
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          int m,k,sum=0;
          cin >> m >> k ;
          if(k==1){
              cout << -1;
              return 0;
          }
          do{
              sum+=m;
              m/=k;
          }while(m);
          if(k==2){
              sum++;
          }
          cout << sum;
          return 0;
      }
      
      
      • 0
        @ 2023-12-9 20:37:19
        #include<iostream>
        int main()
        {
            int M,K;
            std::cin>>M>>K;
            int n=0;
            while(1)
            {
                M-=K;
                n+=K;
                M+=1;
                if(M<K)break;
            }
            n+=M;
            std::cout<<n;
        }
        
        • 0
          @ 2023-10-28 17:51:18
          #include<bits/stdc++.h>
          using namespace std;
          int main()
          {
              unsigned int m,k,sum=0;
              cin >> m;
              cin >> k;
              if(k==1){
                  cout << -1;
                  return 0;
              }
              do{
                  sum+=m;
                  m/=k;
              }while(m);
              if(k==2){
                  sum++;
              }
              cout << sum;
              return 0;
          }
          

          带特殊情况的数学法计算,复杂度logn

          • 1

          信息

          ID
          522
          时间
          1000ms
          内存
          256MiB
          难度
          6
          标签
          递交数
          1116
          已通过
          353
          上传者