【藍橋訓練系統】--特殊迴文數字(循環嵌套)

題目鏈接:點一點

基礎練習 特殊迴文數
時間限制:1.0s 內存限制:512.0MB
提交此題 錦囊1 錦囊2
問題描述
  123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
  輸入一個正整數n, 編程求所有這樣的五位和六位十進制數,滿足各位數字之和等於n 。
輸入格式
  輸入一行,包含一個正整數n。
輸出格式
  按從小到大的順序輸出滿足條件的整數,每個整數佔一行。
樣例輸入
52
樣例輸出
899998
989989
998899
數據規模和約定
  1<=n<=54。

思路:
位數確定,五位數字或六位數字。
第一位和最後一位數字相同,第二位和倒數第二位數字相同,六位數字中間兩位相同,此時注意要分一下奇偶。
用兩個循環嵌套。
代碼如下:

#include<cstdio>
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        int i,j,k;
        for(i=1;i<=9;i++)
        {
            for(j=0;j<=9;j++)
            {
                k=n-(i+j)*2;
                if(k>=10)
                    continue;
                else if(k<0)
                    break;
                else
                    printf("%d%d%d%d%d\n",i,j,k,j,i);
            }
        }
        for(i=1;i<=9;i++)
        {
            for(j=0;j<=9;j++)
            {
                int ans=n-(i+j)*2; 
                if(ans&1)//注意,ans需要是偶數纔可以除以2哦,這樣總數相加纔是n 
                    continue;
                else
                    k=ans/2;
                if(k>=10)
                    continue;
                else if(k<0)
                    break;
                else
                    printf("%d%d%d%d%d%d\n",i,j,k,k,j,i);
            }
        }   
    }
    return 0;
}
發佈了88 篇原創文章 · 獲贊 18 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章