hdu 1282 回文数猜想

题目链接:点击打开链接


模拟水题,主要是考sprintf和sscanf的用法。

最常用的:

sprintf(c,“xx”,n):把n向字符串c中输入

sscanf(c,“xx”,&n):从字符串c中读出东西给n

“xx”处是输入选择,可以实现很多功能,具体百度百科。


代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
long long a[10000];
char t[1000];
void Rev(char c[]){
    int len=strlen(c);
    for(int i=0;i<len/2;i++){
        swap(c[i],c[len-i-1]);
    }
}
bool check(char c[]){
    int len=strlen(c);
    for(int i=0;i<len/2;i++){
        if(c[i]!=c[len-i-1])
          return 0;
    }
    return 1;
}

int main(){

    long long n;;
    while(cin>>n){
            memset(a,0,sizeof(a));
            long long res=0;
            sprintf(t,"%I64d",n);
            a[res]=n;
            while(!check(t)){
                Rev(t);
                long long k;
                sscanf(t,"%I64d",&k);
                n+=k;
                sprintf(t,"%I64d",n);
                a[++res]=n;
            }
            cout<<res<<endl;
            for(int i=0;i<=res;i++){
                cout<<a[i];
                if(i!=res)cout<<"--->";
                else cout<<endl;
            }
    }
    return 0;
}




你可能感兴趣的:(hdu 1282 回文数猜想)