本文主要是介绍17.题目:编号3766 无尽的石头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
###本题主要考察模拟
#include<bits/stdc++.h>
using namespace std;
int sum(int x){int result=0;while(x){result+=x%10;x/=10;}return result;
}
int main(){int t;cin>>t;while(t--){int n;cin>>n;int buf=1;int ans=0;for(int i=1;i<=100000000;++i){if(n!=buf&&n>buf){ans++;}else if(n==buf){cout<<ans<<'\n';break;}else if(n<buf){cout<<-1<<'\n';break;}buf+=sum(buf);}}return 0;
}
整体思路:
- 根据题意,输入t,用while循环分别用ans和buf记录操作次数与n做比较
- 相等则输出ans否则输出-1
- 据题意,我们要记录该石头编号与该石头编号各个位数之和这里编写了一个函数返回各个位数之和,再加上buf即可
这篇关于17.题目:编号3766 无尽的石头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!