今天面试碰到的一题——卡不列克常数,不过我们的要求只是画出顺序图
验证卡布列克运算。任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);
3)求两个数的差,得到一个新的四位数(高位零保留)。
重复以上过程,最后得到的结果是6174,这个数被称为卡布列克数。
*问题分析与算法设计
题目中给出的处理过程很清楚,算法不需要特殊设计,可按照题目的叙述直接进行验证。
*程序与程序注释
#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;
printf("Enter a number:");
scanf("%d", &n); /*输入任意正整数*/
vr6174(n); /*调用函数进行验证*/
}
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("[%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;
}
*运行结果
1) Enter a number:4312
[1]:4312-1234=3078
[2]:8730-378=8352
[3]:8532-2358=6174
2) Enter a number:8720
[1]:8720-278=8442
[2]:8442-2448=5994
[3]:9954-4599=5355
[4]:5553-3555=1998
[5]:9981-1899=8082
[6]:8820-288=8523
[7]:8532-2358=6174
3)Enter a number:9643
[1]:9643-3469=6174
分享到:
相关推荐
098 卡布列克常数 C语言源代码文件
就是验证它啦,希望可以帮到大家忙
验证卡布列克运算。 任意一个四位数,只要它们各个位置上的数字是不完全相同的,就有这样的规律: (1) 将组成这个四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数; (2) 将组成这个四位数的...
任意一个四位数,只要他们各个位置上的数字不全相同,就有这样的规律:(1)将组成这个四位数的四个数由大到小排列,形成由这四个数字构成的最大的四位数;(2)将组成这个四位数的四个数由小到大排列,形成由这四个...
验证卡布列克数 数据结构课程设计 java语言编写 使用GUI
098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归整数四则运算 ...
八皇后、普里姆(prim)算法求最小生成树、贪心法求解装箱问题、求出k!、卡布列克常数等算法C代码
卡布列克常数 84.尼科彻斯定理 85.回文数的形成 86.自动发牌 87.黑白子交换 88.常胜将军 89.抢30 90.搬山游戏 <br>91.人机猜数游戏 92.人机猜数游戏(2) 93.汉诺塔 94....
列克星敦 列克星敦语言。 计划为ANY级别,并部分用Lua,C和Python编写。 目前正在开发中。 注意:可以编译和解释! 注意:编译,运行或编辑时,若未完全稳定,可自行承担风险。
Project-Database:列克
Dutile, F. N., Foust, C. H., & Webster, D. R. (Eds.). Early childhood intervention and juvenile delinquenry. Lexington, MA: Lexington Books, D. C. Heath & Co., 1982, 193 pp., [dollar]23.95....
马萨诸塞州列克星敦:列克星敦图书,180 页,[美元]18.95 书评 33 1 幸运的是,Cherlin 的作者不愿意冲动地将数据、趋势和公共政策联系起来。 他们拒绝将基于数据的社会分析变成时髦的政治小册子。 首先,现有数据并...
马萨诸塞州列克星敦市:DC Heath,1976 年,122 页,[美元]13.00 522 学校心理学,197 年 10 月,7 卷,卷。 14 号,第 4 号,React和抑郁症并没有想象的那么清楚。 在最后一章,作者探讨了抑郁和自杀行为; 抑郁症...
马萨诸塞州列克星敦:列克星敦图书。 180 pp., [dollar]18.95 Book Reviews 173 变化的步伐,莱文指出,将传统学校转变为加速学校需要六年时间。 所有人的成功是约翰霍普金斯大学教育心理学家罗伯特斯拉文的心血结晶...
乌戈列克(Ugolek):Приложение乌戈列克дляпрохожденияпрактики
我们的总部位于美国肯塔基州列克星敦。 在了解更多 这个站点是用构建的,它是用 Ruby 编写的,并使用 Markdown(用于内容创建)、YAML(用于配置和数据)和 Liquid(用于模板)。 贡献者注意事项: 您需要在本地...
永久链接不网址如何生成您可以了解有关其生成方式的更多信息。 降价不确定使用哪个降价引擎通常,您无需根据自己的需要触摸此字段。 分页是的首页上的帖子数入门版支持分页。 通过更改此值来控制给定页面上的帖子数...
Parks Finder 是一种地图工具,用于查找有关列克星敦公园的信息。 这是一个简单的网络地图,使用 Google Maps API 和 Places Libary 来启用地址搜索。 公园数据和几何图形通过 GeoJSON 加载,该 GeoJSON 由数据...
列克星敦住房数据仪表板是一种工具,旨在可视化和了解列克星敦-费耶特县住房的高级趋势。 它目前正在由 2014 年。 仪表板逐年显示邻里级别的数据——例如建筑许可、止赎和房屋违规行为——让用户不仅可以查看邻里...