C_逻辑题:0-7所有的奇数
来源:互联网 发布:电力巡检系统java源码 编辑:程序博客网 时间:2024/06/03 17:27
审题不仔细的人,极容易自作聪明的在77777777范围内去计算奇数的个数。
忽略了数字8,9的缺失。
笨一点的方法是用8个for循环来拼数字,此种做法只需要顾忌最高位不为零的情况即可。
但本题的最佳思路如下:
1,组成的数字不一定非得是8位数,从一位到八位都可以。首先绕过惯性思维这个坑。
2,既然是奇数,那么末尾只能是1,3,5,7。所以个位数所有的可能情况是4。
3,最高位不能为0,所以最高位的选择只能是7。
4,其余位置的选择都可以有8种,这里假设位数为x,所有组合为y,得到如下关系:
x=1 y=4,x=2, y=4*7,x=3, y=4*7*8 x=3, y=4*7*8*8x=3, y=4*7*8*8*8x=3, y=4*7*8*8*8*8x=3, y=4*7*8*8*8*8*8x=3, y=4*7*8*8*8*8*8*8很容易可以发现,一个for循环就可以搞定,代码如下:void main() { long sum = 4, s = 4; int j; printf("1位数的奇数有:4个\n"); for (j = 2; j <= 8; j++) { s *= (j <= 2) ? 7 : 8; printf("%d位数的奇数有:%d个\n", j,s); sum += s; } printf("\n能组成的奇数的总数为: %ld", sum); getchar();}
阅读全文
0 0
- C_逻辑题:0-7所有的奇数
- C_逻辑题: 常胜将军
- C_逻辑题: 石头,剪刀,布
- C_逻辑题:海盗很厚道
- 30的所有技术奇数因子
- 1到m所有奇数的和
- JAVA获取100以内所有的奇数
- python 打印1-100所有的奇数
- * 获取1-100间所有奇数的和 * @return 1-100间所有奇数的和
- 【C入门向】一百以内的奇数相加并表示所有的奇数
- 求100之内的自然数中所有奇数的和
- 计算主格扩展出来的所有奇数列的和
- js 求数组里所有奇数的和的平均值
- 偶数位上都是偶数,要么所有的奇数位上都是奇数
- 偶数位上都是偶数,要么所有的奇数位上都是奇数
- 编写程序输出1000以内的所有奇数
- 1到100以内所有奇数的和
- C#上机 第四周 任务1.1 输出所有的奇数
- BZOJ 4173: 数学 欧拉函数
- bzoj1834: [ZJOI2010]network 网络扩容
- windows7 下安装mysql5.7
- ajax跨域post请求,如何实现呢
- 【linux 定时器】crontab 的用法
- C_逻辑题:0-7所有的奇数
- Spring中配置和读取多个Properties文件
- 【实践】使用本地源搭建ceph集群
- leetcode No85. Maximal Rectangle
- 第一篇文章
- 【信息系统开发与管理】思维导图列展
- 面试题30:最小的k个数
- python根据BM25实现文本检索
- java集合框架(上)