美文网首页
蓝桥杯 历届试题 回文数字

蓝桥杯 历届试题 回文数字

作者: 小白之白小明 | 来源:发表于2017-03-14 17:27 被阅读240次

    问题描述
      观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
      本题要求你找到一些5位或6位的十进制数字。满足如下要求:
      该数字的各个数位之和等于输入的整数。
    输入格式
      一个正整数 n (10<n<100), 表示要求满足的数位和。
    输出格式
      若干行,每行包含一个满足要求的5位或6位整数。
      数字按从小到大的顺序排列。
      如果没有满足条件的,输出:-1
    样例输入
    44
    样例输出
    99899
    499994
    589985
    598895
    679976
    688886
    697796
    769967
    778877
    787787
    796697
    859958
    868868
    877778
    886688
    895598
    949949
    958859
    967769
    976679
    985589
    994499
    样例输入
    60
    样例输出
    -1

    很简单啦,应该没什么问题吧,有问题可以留言~

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int a,b,c,d,e,f;
        int book=0;
        for(int i=10000;i<=99999;i++)
        {
            a=i/10000;
            b=(i-a*10000)/1000;
            c=(i-a*10000-b*1000)/100;
            d=(i-a*10000-b*1000-c*100)/10;
            e=i%10;
            if(a==e&&b==d&&a+b+c+d+e==n)
            {
                    cout<<i<<endl;
                    book=1;
            }
        }
        for(int i=100000;i<=999999;i++)
        {
            a=i/100000;
            b=(i-a*100000)/10000;
            c=(i-a*100000-b*10000)/1000;
            d=(i-a*100000-b*10000-c*1000)/100;
            e=(i-a*100000-b*10000-c*1000-d*100)/10;
            f=i%10;
            if(a==f&&b==e&&c==d&&a+b+c+d+e+f==n)
            {
                cout<<i<<endl;
                book=1;
            }
        }
        if(book==0)
            cout<<-1;
        system("pause");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:蓝桥杯 历届试题 回文数字

          本文链接:https://www.haomeiwen.com/subject/byihnttx.html