PAT (Basic Level) 1091 N-自守数(模拟+stl)
生活随笔
收集整理的這篇文章主要介紹了
PAT (Basic Level) 1091 N-自守数(模拟+stl)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給定一個數K,規定N-自守數的定義為K*K*N的末尾幾位數等于K,則稱K為N-自守數,比如3*92*92=25392,所以92是一個3-自守數,現在給出一些數,判斷其是不是自守數,并輸出最小的N和N*K*K的值
題目分析:直接模擬即可,熟練運用stl可以簡化許多操作,這個題就是個很好的例子,將數字轉換為字符串后可以直接用substr函數提取出其后制定位數
代碼:
#include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<sstream> #include<unordered_map> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int main() { // freopen("input.txt","r",stdin);int w;cin>>w;while(w--){int num;scanf("%d",&num);for(int i=1;i<10;i++){int temp=num*num*i;string ans1=to_string(num);string ans2=to_string(temp);string ans3=ans2.substr(ans2.size()-ans1.size());if(ans1==ans3){printf("%d %s\n",i,ans2.c_str());goto end;}}puts("No");end:;}return 0; }?
總結
以上是生活随笔為你收集整理的PAT (Basic Level) 1091 N-自守数(模拟+stl)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT (Basic Level) 10
- 下一篇: PAT (Basic Level) 10