没有合适的资源?快使用搜索试试~ 我知道了~
验证卡布列克运算(带详细的运算分析资料)
3星 · 超过75%的资源 需积分: 9 7 下载量 170 浏览量
2010-11-27
10:10:53
上传
评论
收藏 2KB TXT 举报
温馨提示
试读
2页
任意一个四位数,只要他们各个位置上的数字不全相同,就有这样的规律:(1)将组成这个四位数的四个数由大到小排列,形成由这四个数字构成的最大的四位数;(2)将组成这个四位数的四个数由小到大排列,形成由这四个数构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);(3)求两个数之差,得到一个新的四位数。(4)重复以上过程,最后得到的结果总是6174。
资源推荐
资源详情
资源评论
要求:任意一个四位数,只要他们各个位置上的数字不全相同,就有这样的规律:(1)将组成这个四位数的四个数由大到小排列,形成由这四个数字构成的最大的四位数;(2)将组成这个四位数的四个数由小到大排列,形成由这四个数构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);(3)求两个数之差,得到一个新的四位数。(4)重复以上过程,最后得到的结果总是6174。
解决:由用户输入一个各位数字不全相同的四位数,设计算法,使这个四位数按照题设给定的四个规律进行操作,最终得到的结果总是6174
(二) 设计:
1. 设计思想:根据题设需要,设计两个函数,并且这两个函数均用到了循环语句和条件语句。
2. 主要算法思想:在主函数中,由用户输入一个各位数字不全相同的四位数,通过for循环不断调用cublic函数,实现题设中的要求。当运算到最终结果为6174时循环停止,输出“卡布列克运算成立”。若一直没有到6174则接着循环,每循环一次调用cublic函数一次。在cublic函数中,a[0]=k/1000;a[1]=(k-a[0]*1000)/100;a[2]=(k-a[0]*1000-a[1]*100)/10;a[3]=k-a[0]*1000-a[1]*100-a[2]*10;是将用户输入的这个四位数的各个位列了出来,其中a[0]为千位,a[1]为百位,a[2]为十位,a[3]为个位。由于a[0],a[1],a[2],a[3]彼此大小未定,故随后的for循环和if语句则给他们进行排序,使得a[3]>a[2]>a[1]>a[0]。最后计算最大值,最小值,m值,并返回m值,则m值为运行结果的一部分,当然还包括6174,卡布列克运算成立。
(三) 用户手册:
程序运行时,首先提示:“请输入一个各位数字不全相同的四位数”;
当程序结束时得到m值,输出程序所要求的结果。
(四) 调试及测试
主函数中,定义的p[100]是随意的,只要满足题意即可
(五) 源程序:
#include<iostream>
using namespace std;
int cublic(int k);
void main()
{
int p[100],q;
cout<<"请输入一个各位数字不全相同的四位数:";
cin>>p[0];
{
for(q=0;q<100;q++)
{
p[q+1]=cublic(p[q]);
if(p[q+1]==6174)
{
cout<<"卡布列克运算成立"<<endl;
break;}
}
}
解决:由用户输入一个各位数字不全相同的四位数,设计算法,使这个四位数按照题设给定的四个规律进行操作,最终得到的结果总是6174
(二) 设计:
1. 设计思想:根据题设需要,设计两个函数,并且这两个函数均用到了循环语句和条件语句。
2. 主要算法思想:在主函数中,由用户输入一个各位数字不全相同的四位数,通过for循环不断调用cublic函数,实现题设中的要求。当运算到最终结果为6174时循环停止,输出“卡布列克运算成立”。若一直没有到6174则接着循环,每循环一次调用cublic函数一次。在cublic函数中,a[0]=k/1000;a[1]=(k-a[0]*1000)/100;a[2]=(k-a[0]*1000-a[1]*100)/10;a[3]=k-a[0]*1000-a[1]*100-a[2]*10;是将用户输入的这个四位数的各个位列了出来,其中a[0]为千位,a[1]为百位,a[2]为十位,a[3]为个位。由于a[0],a[1],a[2],a[3]彼此大小未定,故随后的for循环和if语句则给他们进行排序,使得a[3]>a[2]>a[1]>a[0]。最后计算最大值,最小值,m值,并返回m值,则m值为运行结果的一部分,当然还包括6174,卡布列克运算成立。
(三) 用户手册:
程序运行时,首先提示:“请输入一个各位数字不全相同的四位数”;
当程序结束时得到m值,输出程序所要求的结果。
(四) 调试及测试
主函数中,定义的p[100]是随意的,只要满足题意即可
(五) 源程序:
#include<iostream>
using namespace std;
int cublic(int k);
void main()
{
int p[100],q;
cout<<"请输入一个各位数字不全相同的四位数:";
cin>>p[0];
{
for(q=0;q<100;q++)
{
p[q+1]=cublic(p[q]);
if(p[q+1]==6174)
{
cout<<"卡布列克运算成立"<<endl;
break;}
}
}
资源评论
- wz7htp982017-12-09666666666挺好的哦 详细
Jasminee77
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mmexport1713192608513.mp4
- 斯特林V4发动机 斯特林V4发动机
- 基于C实现的N阶数字正方形 ;N阶数字三角形;N阶数字递减三角形;乘法表
- 基于分水岭算法的图像分割的python源码(课程设计).zip
- 基于Java 实现的二进制十进制之间的相互转换
- Pytorch实现基于卷积神经网络的面部表情识别项目源码+数据集+全部资料(毕业设计).zip
- Pytorch实现基于深度学习卷积神经网络的面部表情识别项目源码+面部表情数据集(人脸面部表情识别项目).zip
- 淘金小游戏助手.apk
- 基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型(人脸面部表情识别项目).zip
- 深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型(人脸面部表情识别项目).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功