098.卡布列克常数

简介: 098.卡布列克常数
#include<stdio.h>
void vr6174(int);
void parse_sort(int num,int *each);
void max_min(int *each,int *max,int *min);
void parse_sort(int num,int *each);
int count=0;
void main()
{
    int n=1;
    clrscr();
    puts("**************************************************************");
    puts("*         This program is to verify Comgrich Content.        *");
    puts("* That is any 4-digit number whose digitals are not the same *");
    puts("* has the rule: (1) range the 4 digits to get the maximum    *");
    puts("* 4-digit number, (2) range the 4 digits to get the minimum  *");
    puts("* 4-digit number, (3) get the difference of these two numbers*");
    puts("* that is a new 4-digit number. Continute to calculate with  *");
    puts("* (1)-(3),the result in the end is 6174,the Comgrich Content.*");
    puts("**************************************************************");
    while(n!=0)
    {
      printf(" >> Please input a 4-digit number to verify(0 to quit): ");
      scanf("%d",&n);      /*输入任一整数*/
      if(n==0)
    break;
      printf(" >> ------ Results of verification: ------------\n");
      count=0;
      vr6174(n);           /*调用函数进行验证*/
      printf(" >> ---------------------------------------------\n");
    }
    puts("\n Press any key to quit...");
    getch();
}
void vr6174(int num)
{
    int each[4],max,min;
    if(num!=6174&&num)    /*若不等于74且不等于0则进行卡布列克运算*/
    {
        parse_sort(num,each);         /*将整数分解,数字存入each数组中*/
        max_min(each,&max,&min);      /*求数字组成的最大值和最小值*/      
        num=max-min;          /*求最大值和最小值的差*/
        printf(" >> Step No.%d:  %d-%d=%d\n",++count,max,min,num); /*输出该步计算过程*/
        vr6174(num);         /*递归调用自身继续进行卡布列克运算*/
    }
}
void parse_sort(int num,int *each)
{
    int i,*j,*k,temp;
    for(i=0;i<=4;i++)         /*将NUM分解为数字*/
    {
        j=each+3-i;
        *j=num%10;
        num/=10;
    }
    for(i=0;i<3;i++)     /*对各保数字从小到大进行排序*/
        for(j=each,k=each+1;j<each+3-i;j++,k++)
            if(*j>*k) { temp=*j;*j=*k;*k=temp;}
    return;
}
void max_min(int *each,int *max,int *min)    /*将分解的数字还原为最大整数和最小整数*/
{
    int *i;
    *min=0;
    for(i=each;i<each+4;i++)     /*还原为最小的整数*/
        *min=*min*10+*i;
    *max=0;
    for(i=each+3;i>=each;i--)    /*还原为最大的整数*/
        *max=*max*10+*i;
    return;
}
相关文章
|
运维 Prometheus 监控
Grafana 系列 - 统一展示 -11-Logs Traces 无缝跳转
Grafana 系列 - 统一展示 -11-Logs Traces 无缝跳转
|
存储 Linux 应用服务中间件
基于CentOS 7.6的Docker新手教学
采用本地虚拟机+阿里云镜像加速器
1430 5
基于CentOS 7.6的Docker新手教学
|
Oracle 关系型数据库 数据库
手把手教你Oracle DataGuard主备切换(switchover)
手把手教你Oracle DataGuard主备切换(switchover)
1652 4
|
8月前
|
JavaScript 前端开发
开发和内网部署正常,反向代理后出现404和图片加载失败的解决方案;部署到公网后报错404;部署到公网后图片加载出错;动态渲染获取图片失败
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
11月前
|
机器学习/深度学习 人工智能 算法
Enhance-A-Video:上海 AI Lab 推出视频生成质量增强算法,显著提升 AI 视频生成的真实度和细节表现
Enhance-A-Video 是由上海人工智能实验室、新加坡国立大学和德克萨斯大学奥斯汀分校联合推出的视频生成质量增强算法,能够显著提升视频的对比度、清晰度和细节真实性。
495 8
Enhance-A-Video:上海 AI Lab 推出视频生成质量增强算法,显著提升 AI 视频生成的真实度和细节表现
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
467 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
JSON 前端开发 Java
Java基础知识第九讲:单元测试、前后端规约与联调
Java基础知识第九讲:单元测试、前后端规约与联调
325 0
|
JavaScript jenkins 持续交付
Jenkins自动化构建Vue项目的实践
在现代的Web开发中,Vue.js已经成为一种非常流行的JavaScript框架。为了更高效地管理和部署Vue.js项目,使用自动化构建工具是至关重要的。Jenkins作为一款强大的持续集成和持续部署(CI/CD)工具,为我们提供了一种便捷的方式来自动化构建Vue.js项目。本文将介绍如何在Jenkins中配置和使用自动化构建Vue.js项目的步骤。
328 1
Jenkins自动化构建Vue项目的实践
|
JSON 缓存 API
深度探讨 Jetpack SplashScreen 如何重塑应用启动画面(2)
深度探讨 Jetpack SplashScreen 如何重塑应用启动画面(2)
深度探讨 Jetpack SplashScreen 如何重塑应用启动画面(2)
|
Dubbo 应用服务中间件
分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
最近,开源社区发生了一件大事,那个全国开发使用最广的开源服务框架Dubbo低调重启维护,并且3个月连续发布了3个维护版本。这3个维护版本不仅解决了社区关心的一系列问题和需求,还让整个社区的活跃度得到了大幅提升。
28346 136