[蓝桥杯 2023 国 Python A] 整数变换
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;
}