hdu 1282 回文数猜想

来源:互联网 发布:淘宝网恒源祥女装 编辑:程序博客网 时间:2024/05/22 13:26

题目链接:点击打开链接


模拟水题,主要是考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;}


0 0
原创粉丝点击