通过递归实现贪心思想,其实跟一个循环,记录cnt(操作数)是一样的
#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<int>a;
int n;
int wei;
int zhuan(int num){
int ans=0;
while(num){
ans+=num%10;
num/=10;
}
return ans;
}
int chack(int num){
for(int i=wei;i>0;i--){
if(a[i]<a[i-1]){
if(a[i-1]>=10){
a[i-1]=zhuan(a[i-1]);
wei=i;
return chack(num+1);
}else{
return -1;
}
}
}
return num;
}
signed main(){
int t;
cin>>t;
while(t--){
cin>>n;
wei=n-1;
a.resize(n,0);
for(int i=0;i<n;i++){
cin>>a[i];
}
cout<<chack(0)<<endl;
}
return 0;
}