亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

c語言描述回文數的三種算法

2020-01-26 13:28:18
字體:
來源:轉載
供稿:網友

題目描述

  • 注意:(這些回文數都沒有前導0)
  • 1位的回文數有0,1,2,3,4,5,6,7,8,9 共10個;
  • 2位的回文數有11,22,33,44,55,66,77,88,99 共9個;

* 請問:n位的回文數有多少個?請編寫一個遞歸函數來解決此問題?。?!

  • 【輸入形式】一行一個正整數,代表多少位
  • 【輸出形式】一行一個正整數,代表回文詩的個數
  • 【樣例輸入】2
  • 【樣例輸出】9

輸入:
3

輸出:
90

輸入:
5

輸出:
900

**輸入:
10

輸出:
90000**

輸入:
8

輸出:
9000

輸入:
1

輸出:
10

思路分析

通過for循環讀入這個數,通過/和%操作將這個數據逆轉,然后再對比逆轉后的數字是否和原數字相等

通過for循環讀入這個數,每次取頭位一個數字和末位一個數字,依次比較這兩個數字是否相等,再去掉這兩個數字,直到剩下一個數字(位數為奇數)或者剩下兩個數字(位數為偶數)

通過數學關系,直接判斷位數,算出這個位數內的回文數個數;

  • 例如:99899
  • 可以把它分為兩半,取前面一半998,如果是回文數,其后面一半一定是與其相應位置對應,998為3位數字,**除第一位(不包含前導0)故與后半對應的位置那個數有9種選擇(1-9)外,其他位都與相應的位置有10種選擇(0-9)**,例如第二位和倒數第二位(0-9)
  • 所以可以總結出來相同的位數,位數為奇數奇數其回文數有9*10^(n/2)個,注意n/2是整數,位數為偶數的為910^(n/2-1)個,所以5位數字的的回文數有910*10=900個
  • 注意位數為1有10個(0-9),需要特殊處理

代碼描述

1. 第一種思路:

#include <stdio.h>#include <math.h>int reverse(long int i,long int *terminate)    //遞歸函數求數值的逆序{  if (i<=0){       //遞歸出口    return 1;      }  else{    *terminate*=10;   //每次乘10升位數    *terminate+=i%10;   //加上個位    reverse(i/10,terminate);    //遞歸每次規模縮小  }  return 1;}int main (){  int n;  scanf ("%d",&n);      //讀入一個n,表示n位整數  long int i;      int count=0;  if (n==1){        //如果等于1,則有10個(0-9都是),特殊處理;    printf ("10");    return 0;  }  for (i=pow(10,n-1);i<pow(10,n);i++){    //從第一個n位數開始(10^(n-1)),到(10^n)-1    long int terminate=0;        //定義一個逆序目標數    reverse(i,&terminate);       //把i和逆序目標數傳入    if (terminate==i){         //逆序后還和原數相等,則可計數      count++;    }  }  printf ("%d",count);    //輸出個數  return 0;}

2. 第二種思路:

#include <stdio.h>#include <math.h>int judge(int i,int n){  int first,last;  if (n<=1){     //規模減小,直到n為1(偶數)或者0    return 1;  }  else{    first=i/pow(10,n-1);    //頭位數字    last=i%10;         //末位數字    if (first!=last){      //頭位末尾不一樣直接退出      return 0;    }    int tem=pow(10,n-1);      judge(i%tem/10,n-2);      //剔除頭尾剩下中間,位數減二  }}int main (){  int n;  scanf("%d",&n);  if (1==n){    printf ("10");    return 0;  }  int i;  int count=0;  long long low=pow(10,n-1);   //循環入口  long long high=pow(10,n);    //循環出口  for (i=low;i<high;i++){    if ( judge(i,n)==1){     //判斷i是否為回文,計數      count++;    }  }  printf ("%d",count);  return 0;}

3. 第三種思路:

#include <stdio.h>#include <math.h>int main (){  int n;  scanf ("%d",&n);  int ji=9*pow(10,n/2),ou=9*pow(10,n/2-1);  if (n==1){    printf ("10");  }  else if (n==2){    printf ("%d",9);  }  else if (n%2==1){    printf ("%d",ji);  }  else if (n%2==0){    printf("%d",ou);  }  return 0;}

額外疑問

第一第二種方法當n=10的時候運算不出來,求解為何如此,是時間復雜度太高了嗎?還是爆int了或者爆遞歸了?

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情欧美狂野欧美精品| 欧美成人高清视频| 国产精品私拍pans大尺度在线| 中文字幕亚洲二区| 中文字幕精品www乱入免费视频| 日韩的一区二区| 57pao成人永久免费视频| 日韩**中文字幕毛片| 久久久久久尹人网香蕉| 黑人巨大精品欧美一区二区免费| 国产精品国内视频| 亚洲新声在线观看| 精品久久久香蕉免费精品视频| 日韩亚洲在线观看| 国产精品视频免费在线观看| 韩国一区二区电影| 亚洲精品99999| 国产精品免费久久久久影院| 日韩成人av网址| 国产成人综合亚洲| 97视频色精品| 51午夜精品视频| 日韩欧亚中文在线| 全球成人中文在线| 亚洲精品一区中文字幕乱码| 日韩欧美中文在线| 日韩精品在线观看视频| 亚洲精品456在线播放狼人| 欧美激情精品久久久久久蜜臀| 高清日韩电视剧大全免费播放在线观看| 国产精品久久久久91| 在线成人激情黄色| 国产精品美腿一区在线看| 国产精品美乳一区二区免费| 亚洲国产精品电影| 国产精品女主播| 98精品国产高清在线xxxx天堂| 国产一区二区视频在线观看| 国产一区二区三区毛片| 久久夜色精品国产| 中文字幕亚洲激情| 日韩在线视频播放| 91沈先生在线观看| 亚洲午夜未删减在线观看| 亚洲精品福利免费在线观看| 国产精品亚洲一区二区三区| 国产不卡视频在线| 日韩中文字幕不卡视频| 亚洲一区亚洲二区亚洲三区| 欧美性猛交xxxx乱大交| 粉嫩老牛aⅴ一区二区三区| 日韩在线视频观看正片免费网站| 在线观看成人黄色| 日韩成人中文电影| 亚洲综合最新在线| 亚洲第一精品夜夜躁人人躁| 琪琪亚洲精品午夜在线| 日韩精品视频免费专区在线播放| 日韩在线观看成人| 久久影院资源网| 国产精品美女在线观看| 自拍偷拍亚洲欧美| 日韩电影中文字幕一区| 91免费精品国偷自产在线| 欧美性感美女h网站在线观看免费| 亚洲福利影片在线| 日韩视频在线观看免费| 久久久噜噜噜久久中文字免| 久久久伊人欧美| 亚洲欧美www| 国产精品欧美日韩| 国产在线a不卡| 日韩视频永久免费观看| 日韩激情av在线免费观看| 精品av在线播放| 91在线无精精品一区二区| 国产91免费观看| 国产噜噜噜噜噜久久久久久久久| 欧美成年人视频网站| 国产日韩欧美电影在线观看| 亚洲天堂男人天堂| 伊人男人综合视频网| 91精品在线观看视频| 成人免费网站在线观看| 久久综合伊人77777蜜臀| 午夜精品视频网站| 亚洲一级黄色av| 亚洲毛茸茸少妇高潮呻吟| 日韩精品在线电影| 久久精品99久久久久久久久| 精品国产一区二区三区久久久| 久久成人综合视频| 疯狂蹂躏欧美一区二区精品| 国产精品丝袜久久久久久高清| 亚洲尤物视频网| 色综合久久天天综线观看| 国产精品尤物福利片在线观看| 欧美激情视频在线观看| 亚洲精品中文字幕av| 91系列在线观看| 国产成人精品电影久久久| 国产一区红桃视频| 91免费人成网站在线观看18| 亚洲人av在线影院| 日本亚洲欧美三级| 久久久91精品国产| 亚洲精品国产综合久久| 日韩免费观看网站| 欧美日韩亚洲一区二| 中文字幕亚洲专区| 色播久久人人爽人人爽人人片视av| 久久久久久伊人| 深夜福利一区二区| 中文字幕日韩欧美| 91在线视频九色| 日韩视频在线观看免费| 色综合久久悠悠| 亚洲欧美日韩天堂| 国产在线a不卡| 韩国一区二区电影| 亚洲男人天堂九九视频| 亚洲女人天堂av| 久久视频在线播放| 久久久久久久色| 日韩欧中文字幕| 国产aaa精品| 亚洲亚裔videos黑人hd| 91精品国产综合久久男男| 韩国三级电影久久久久久| 欧美日韩免费一区| 久久国产精品久久久久久久久久| 国产精品欧美亚洲777777| 久久久99久久精品女同性| 欧美电影免费观看电视剧大全| 久久天天躁夜夜躁狠狠躁2022| 亚洲男人的天堂在线播放| 国产精品视频播放| 欧美极品美女视频网站在线观看免费| 国内精品小视频在线观看| 日韩精品高清视频| 久久影院中文字幕| 欧美成在线观看| 欧美激情久久久| 一本大道香蕉久在线播放29| 一区二区三区四区在线观看视频| 色悠悠久久久久| 日韩美女av在线| 亚洲精品国偷自产在线99热| 亚洲热线99精品视频| 国产a∨精品一区二区三区不卡| 国产精品伦子伦免费视频| 国产精品福利在线| 亚洲欧美一区二区三区四区| 国产亚洲aⅴaaaaaa毛片| 久久国产精品网站| 97久久精品视频| 韩国国内大量揄拍精品视频| 国内精品国产三级国产在线专| 国产日韩精品综合网站| 精品久久久久国产| 亚洲一区制服诱惑| 国产综合在线视频| 日韩精品黄色网| 亚洲女人天堂网|