100买气球c语言,[求助]求助踩气球问题C语言程序

#include

#include

typedef struct{

char len;

char dat[20];

}dec;

dec dc1[100];

dec dc2[100];

char tmp[20];

int offset1,offset2,depth;

void decom(dec d[],int* offset,int num,int start){

if(num<=start*start){

if(num>100||num

tmp[depth++] =num;

d[*offset].len =depth;

memcpy(d[*offset].dat,tmp,depth);

depth--;

(*offset)++;

return;

}

if(num%start==0){

tmp[depth++] =start;

decom(d,offset,num/start,start+1);

depth--;

}

decom(d,offset,num,start+1);

}

int suit(int a,int b){

int i,j,m,n;

offset1 =offset2 =depth =0;

decom(dc1,&offset1,a,1);

decom(dc2,&offset2,b,1);

if(!offset1) return 1;

for(i=0;i

for(j=0;j

for(m=n=0;m

if(dc1[i].dat[m]==dc2[j].dat[n]) break;

else if(dc1[i].dat[m]

else n++;

if(dc1[i].len==m||dc2[j].len==n) return 1;

}

return 0;

}

int main(){

int a,b,tmp;

while(scanf(\"%d%d\",&a,&b)!=EOF){

if(a>b){

tmp =a;

a =b;

b =tmp;

}

printf(\"%d\n\",suit(a,b)?b:a);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值