P10985 [藍橋杯 2023 國 Python A] 整數變換
題目背景
建議使用 PyPy3 提交本題。
題目描述
小藍有一個整數 n n n。每分鐘,小藍的數都會發生變化,變為上一分鐘的數
減去上一分鐘的數的各個數位和。
例如,如果小藍開始時的數為 23 23 23,則下一分鐘變為 23 ? ( 2 + 3 ) = 18 23 - (2 + 3) = 18 23?(2+3)=18,再下一分鐘變為 18 ? ( 1 + 8 ) = 9 18 - (1 + 8) = 9 18?(1+8)=9,再下一分鐘變為 9 ? 9 = 0 9 - 9 = 0 9?9=0,共經過了 3 3 3 分鐘變為 0 0 0。
給定一個正整數,請問這個數多少分鐘后變為 0 0 0。
輸入格式
輸入一行包含一個整數 n n n。
輸出格式
輸出一個整數,表示答案。
輸入輸出樣例 #1
輸入 #1
23
輸出 #1
3
說明/提示
對于 30 % 30\% 30% 的評測用例, 1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000;
對于 60 % 60\% 60% 的評測用例, 1 ≤ n ≤ 1 0 6 1 \le n \le 10^6 1≤n≤106;
對于所有評測用例, 1 ≤ n ≤ 1 0 9 1 \le n \le 10^9 1≤n≤109。
思路:模擬
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;int main(void)
{cin>>n;ll ans=0;while(n>0){ ll sum=0;ll tmp=n;while(tmp){sum+=tmp%10;tmp/=10; }n-=sum;ans++;}cout<<ans;return 0;
}