求助,全RE,谢谢大佬
查看原帖
求助,全RE,谢谢大佬
855709
Hoilap楼主2022/11/20 16:04

求助,全RE,谢谢大佬 (我寻思着所有循环都都有终止条件,为什么devc++会输出3221225477)

#include<stdio.h>
int bit(int n);
void bin(int n);
void function(int n);
int length;
int bin_arr[20001]; 

int main(){
	int n;
	length=bit(n);
	scanf("%d",&n);
	function(n);//执行题目要求 
} 

int bit(int n){  //将一个数的二进制长度表示出来
	int k=0;
	for(int i=n;i>0;i/2){
		k++;
	}
	return k;
}

void bin(int n){ //求出二进制数组 
	int j=0; //j是放二进制数的索引 
	for(int i=n;i>0;i/2){
		bin_arr[j]=i%2;
		j++;
	}
}

void function(int n){
	bin(n); 
	int len=bit(n);
	for(int i=len;i>0;i--){
		if(bin_arr[i]==1){
			if(i<2){
				if(i==2) printf("2") ;
				else if(i==1) printf("2(0)");
				else if(i==0) printf("0");
			}
			else{ //想用return一个字符串的功能,但不会 
				printf("2(");
				function(i);
				printf(")+");
			}
		}
			
	}
}
2022/11/20 16:04
加载中...