输出1到N位数最大值的全部数字

本文介绍了一种使用树的深度遍历方法来输出1到N位数最大值的所有可能数字,并讨论了如何解决大数问题,包括利用数组、字符串以及位操作等方法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//全组合其实是个树的深度遍历   输出1到N位数最大值的全部数字   这个要考虑大数的问题:可以用数组和字符串     还有比较简单的方法那就是利用全组合树的遍历来做
//下面就是树的遍历
#include<stdio.h>
#include<string.h>
#define maxn 11
void printf_s(int num[],int len);
void solve(int l,int num[]);
int n;
int mat[maxn]={0,1,2,3,4,5,6,7,8,9};//存储数组
int main(){
while(scanf("%d", &n)!=EOF){
int num[n];//输出数组
solve(0,num);
}
return 0;
}

void solve(int l,int num[]){
if(l>=n){
printf_s(num,n);
printf("\n");
return;
}
int i;
for( i=0;i<10;++i){
num[l]=mat[i];
solve(l+1,num);
}
}

void printf_s(int num[],int len){
     int i;
  int flag=0;
     for(i=0;i<len;i++){
  if(flag)
    printf("%d",num[i]);
  else if(num[i]!=0){
      flag=1;
   printf("%d",num[i]);
  } 
  }
}



如果觉得int存1--9个数字太浪费了,那也可以,规定多少个bit来进行存放

#include<stdio.h> 
#include<string.h> 
#define maxn 11 
typedef struct {
                unsigned int one:8;
unsigned int second:8;
unsigned int three:8;
unsigned int four:8;
}bit4_int;//sizeof  ==4
int main(){ 
   int num_one,num_second;

 bit4_int num[1];
 scanf("%d,%d",&num_one,&num_second);
       num[0].one=num_one; 
       num[0].second=num_second; 
 printf("%d,%d", num[0].one,num[0].second);
return 0; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值