c# 判断整数倍_C语言,给一个四位数,先判断是不是11的整数倍

给一个四位数,先判断是不是11的整数倍,若是则输出,不是就把四位数重新排列,在形成的新的四位数中判断是不是11的整数倍,如此循环我想知道有什么好办法可以把4位数重新排列组合的?...

给一个四位数,先判断是不是11的整数倍,若是则输出,不是就把四位数重新排列,在形成的新的四位数中判断是不是11的整数倍,如此循环

我想知道有什么好办法可以把4位数重新排列组合的?

我开始是这么想的,但是我这样不能排列有重复数字的数字组合,比如1122。

代码如下

#include

void main(){

int n[4],res[50],i,j,k,l,m=0,max,mark,count,number=0;

printf("输入一个四位数,系统将为你重新排序 \n");

scanf("%1d%1d%1d%1d",&n[0],&n[1],&n[2],&n[3]);

for(i=0;i<4;i++){ //例举所有四位数各不相等的新组合,但是我这样写就

for(j=0;j<4;j++){ 不能重新排列1122这样有重复数字的四位数了。

for(k=0;k<4;k++){

for(l=0;l<4;l++){

if((n[i]!=n[j]&&n[j]!=n[k]&&n[k]!=n[l]&&n[i]!=n[k]&&n[i]!=n[l]&&n[j]!=n[l])&&n[i]!=0){

printf("%d%d%d%d\n",n[i],n[j],n[k],n[l]);

res[m]=1000*n[i]+100*n[j]+10*n[k]+n[l];

m++;

}

}

}

}

}

count=0;

do{

if(res[count]%11==0){

printf("%d是11的整数倍 \n",res[count]);

count++;

number++;

}

else{

count++;

}

}while(res[count]<=10000&&res[count]>=1000);

if(number==0){

printf("该数所有的排列组合都不能被11整除! \n");

return;

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值