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;
}