编写算法对输入的一个整数,判断它能否被3,5,7整除,并输出一下信息之一:
2016-04-07 19:06
477 查看
能同时被3,5,7整除;
能被其中两个数(要指出哪两个数)整除;
能被其中一个数(要指出哪一个数)整除;
不能被3,5,7任一个整除。
算法说明:算法中k表示整除的情况值,为k的赋值表达式(tmp%3 == 0) + (tmp%5 == 0)*2 +(tmp%7 == 0)*4,k的范围是0~7可以表示8中情况。既运用了算术运算的技巧,有较好地运用了“数字化”标识信息的技巧。所以变量k的信息含量更高,从而输出的结果更具体。
运行结果:
能被其中两个数(要指出哪两个数)整除;
能被其中一个数(要指出哪一个数)整除;
不能被3,5,7任一个整除。
#include <iostream> using namespace std; int main() { int tmp; cout<<"please enter a number:"; while(cin>>tmp) { int k = (tmp%3 == 0) + (tmp%5 == 0)*2 +(tmp%7 == 0)*4; switch(k) { case 0: cout<<"none."<<endl;break; case 1: cout<<"3."<<endl;break; case 2: cout<<"5."<<endl;break; case 3: cout<<"3 ,5"<<endl;break; case 4: cout<<"7."<<endl;break; case 5: cout<<"3,7"<<endl;break; case 6: cout<<"5,7"<<endl;break; case 7: cout<<"3,5,7"<<endl; } cout<<"please enter a number:"; } return 0; }
算法说明:算法中k表示整除的情况值,为k的赋值表达式(tmp%3 == 0) + (tmp%5 == 0)*2 +(tmp%7 == 0)*4,k的范围是0~7可以表示8中情况。既运用了算术运算的技巧,有较好地运用了“数字化”标识信息的技巧。所以变量k的信息含量更高,从而输出的结果更具体。
运行结果:
相关文章推荐
- 游戏开发付费数值设计(13)
- getParameter()和getParameterValue()的区别
- 第三方库
- centos 6.7 openssh 升级到openssh 7.1p
- Linux挂载img镜像文件
- 问卷调查
- cuda的线程模型
- RecyclerView利用LayoutManager查找控件的BUG
- bs4安装过程
- ReactNative学习十五-横竖布局及右上角圆点
- 奇妙华为3c手机, 出现安装未成功问题。
- O2O是机遇不是鸡肋,百度O2O的步伐不会停
- PyQt QString转成python stirng
- ANSI库续(时间函数)与文件操作初识
- Object-C中的内存管理 MRC、ARC以及Autoreleasepool的区别
- C++实现——排列组合
- js文件中直接alert()中文出来的是乱码
- 无序数组中最小的k个数
- 在iOS上实现变换
- iOS-多线程--(pthread/NSThread/GCD/NSOperation)--总结