6174C语言编程,用C语言验证“6174数学黑洞之谜”?

原标题:用C语言验证“6174数学黑洞之谜”?

我们先来看看五组实验结果

请输入一个互不相同的四位数:3758

输入的四位数是:3758

第1次:8753 - 3578 = 5175

第2次:7551 - 1557 = 5994

第3次:9954 - 4599 = 5355

第4次:5553 - 3555 = 1998

第5次:9981 - 1899 = 8082

第6次:8820 - 288 = 8532

第7次:8532 - 2358 = 6174

经过了7次最大减最小的动作

请输入一个互不相同的四位数:2517

输入的四位数是:2517

第1次:7521 - 1257 = 6264

第2次:6642 - 2466 = 4176

第3次:7641 - 1467 = 6174

经过了3次最大减最小的动作

请输入一个互不相同的四位数:6915

输入的四位数是:6915

第1次:9651 - 1569 = 8082

第2次:8820 - 288 = 8532

第3次:8532 - 2358 = 6174

经过了3次最大减最小的动作

请输入一个互不相同的四位数:9073

输入的四位数是:9073

第1次:9730 - 379 = 9351

第2次:9531 - 1359 = 8172

第3次:8721 - 1278 = 7443

第4次:7443 - 3447 = 3996

第5次:9963 - 3699 = 6264

第6次:6642 - 2466 = 4176

第7次:7641 - 1467 = 6174

经过了7次最大减最小的动作

请输入一个互不相同的四位数:5287

输入的四位数是:5287

第1次:8752 - 2578 = 6174

经过了1次最大减最小的动作

接下来我们用C语言代码进行验证,代码实现如下。

代码实现 # include

intconvert( intnumber[], intans);

int* sort( intnumber[], intlen);

intmain( void)

{

intnumber[ 4] = { 0};

int*p = NULL;

intn = 0;

intans = 0;

intcount = 0;

printf( "请输入一个互不相同的四位数:");

scanf( "%d",&n);

printf( "输入的四位数是:%dn",n);

ans = n;

while(ans!= 6174)

{

ans = convert(number,ans);

printf( "第%d次:%dn",count+ 1,ans);

++count;

}

printf( "经过了%d次最大减最小的动作n",count);

return0;

}

int* sort( intnumber[], intlen)//大到小的排序

{

inta = 0;

for( inti= 0; i

{

for( intj=i+ 1;j

{

if(number[i]

{

a = number[i];

number[i] = number[j];

number[j] = a;

}

}

}

returnnumber;

}

intconvert( intnumber[], intans)//每次变换得到的数字

{

int*p = NULL;

intm= 0;

number[ 0] = ans/ 1000; //把这个数放入数组

number[ 1] = ans% 1000/ 100;

number[ 2] = ans% 100/ 10;

number[ 3] = ans% 10;

p = sort(number, 4);

m=(*p* 1000+*(p+ 1)* 100+*(p+ 2)* 10+*(p+ 3))- ( *(p+ 3)* 1000+*(p+ 2)* 100+*(p+ 1)* 10+*p); //最大数字减去最小数字

returnm;

}

运行结果:

75dc77fe6307f0f486169943b057ef82.png

你和大牛工程师之间到底差了啥?

加入技术交流群,与高手面对面返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值