1019 数字黑洞 (20 分)
发布日期:2021-06-29 22:19:43
浏览次数:2
分类:技术文章
本文共 1218 字,大约阅读时间需要 4 分钟。
1019 数字黑洞 (20 分)
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到
7766 - 6677 = 1089
9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 … … 现给定任意 4 位正整数,请编写程序演示到达黑洞的过程。输入格式:
输入给出一个 (0,10 4 ) 区间内的正整数 N。输出格式:
如果 N 的 4 位数字全相等,则在一行内输出 N - N = 0000;否则将计算的每一步在一行内输出,直到 6174 作为差出现,输出格式见样例。注意每个数字按 4 位数格式输出。输入样例 1:
6767 输出样例 1: 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 输入样例 2: 2222 输出样例 2: 2222 - 2222 = 0000 #include<stdio.h>//测试点0,1分别是输入样例1,和输入样例2; int main() { int n,a[10]={0},k=0,j,temp,i,min=0,max=0; scanf("%d",&n); while(1) { min=0; max=0; k=0; do { a[k++]=n%10; n=n/10; }while(n!=0); //测试点二,需要对数组的四个元素都要赋值;没有的补零; if(k= =4) a[4]=0; else if(k= =3) a[3]=a[4]=0; else if(k= =2) a[2]=a[3]=a[4]=0; else if(k= =1) a[1]=a[2]=a[3]=a[4]=0; for(i=0;i<3;i++)//此处不可以写k-1;测试点3,4; { for(j=i+1;j<4;j++)//此处不可以写k;测试点3,4; { if(a[i]>a[j])//升序排列; { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } max=a[3]*1000+a[2]*100+a[1]*10+a[0]; min=a[0]*1000+a[1]*100+a[2]*10+a[3]; printf("%04d - %04d = %04d\n",max,min,max-min); n=max-min; if(n= =6174||n==0||a[0]==a[1]==a[2]==a[3]) break; } }转载地址:https://dingshijie.blog.csdn.net/article/details/87426510 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月13日 02时13分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql导出到文本文件(select ... into outfile)
2019-04-30
mysql文本文件导入到数据库
2019-04-30
docker安装nginx
2019-04-30
docker部署nginx
2019-04-30
docker安装php
2019-04-30
docker安装tomcat
2019-04-30
docker容器里无法使用vi命令
2019-04-30
jsp自定义标签笔记
2019-04-30
1.阿里云上安装jdk8
2019-04-30
2.阿里云上安裝redis
2019-04-30
3.阿里云上安装mysql
2019-04-30
4.阿里云上安装nacos
2019-04-30
6.阿里云上安装kafka
2019-04-30
5.阿里云上安装zookeeper
2019-04-30
7.阿里云上安装RabbitMQ
2019-04-30
JDK8 管道 Stream 详细使用介绍
2019-04-30
2.启停项目脚本
2019-04-30
配置了阿里云安全组端口,浏览器还是不能访问的问题
2019-04-30