當前位置:編程學習大全網 - 編程軟體 - 求壹道C++或C語言編程題

求壹道C++或C語言編程題

根據妳題意(C語言編寫):

1,要使用遞歸函數。

2,遞歸層數對應數學位數。

我這裏自定義函數int checkNum(int num,int w)就是妳要的類型。

其功能是判斷數字num是否是w位數的數字,是返回1,否返回0。

w控制遞歸的層數。按照位數輸出1到n的整數。

#include <stdio.h>

int checkNum(int num,int w);//利用遞歸判斷數字num是否是w位的數

int getW(int num);//獲取數字的位數

int main()

{

int i,n,flag,num=1,mW=0;//mW:1到n的最大數位數

printf("輸入壹個數n:");

scanf("%d",&n);

mW=getW(n);

printf("1到%d的整數為:\n",n);

for(i=1;i<=mW;i++)//從1位數壹直到mW位數依次輸出

{

printf("------%d位數-------\n",i);

while(1)

{

if(num>n)

break;

if((flag=checkNum(num,i)))

printf("%d\n",num);

if(!flag)

break;

num++;

}

if(num>n)

break;

}

return 1;

}

int getW(int num)//獲取數字的位數

{

int n=1;

while(1)

{

num=num/10;

if(num==0)

return n;

n++;

}

return 1;

}

int checkNum(int num,int w)//利用遞歸判斷數字num是否是w位的數

{

num=num/10;

if(--w && num>0)

return checkNum(num,w);

if(w==0 && num==0)

return 1;

if(w==0 && num>0)

return 0;

return 0;

}

  • 上一篇:通信原理中如何求功率
  • 下一篇:請問內存緩沖區和硬盤緩沖區有什麽區別?壹般編程時所說的寫入緩沖區是指哪壹個?
  • copyright 2024編程學習大全網