C语言:爱因斯坦的数学题
问题:
爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在 1~N 内,有多少个数能满足?
问题分析
用变量x表示阶梯数,则x 应满足:
- 若每步跨2阶,则最后剩1阶 -- x%2=1;
- 若每步跨3阶,则最后剩2阶 -- x%3=2;
- 若每步跨5阶,则最后剩4阶 -- x%5=4;
- 若每步跨6阶,则最后剩5阶 -- x%6=5;
- 每次跨7阶,最后一阶不剩 -- x%7=0。
因此,阶梯数应该同时满足上面的所有条件。
分析:
该问题要求输入N值,求解出在的范围内存在多少个满足要求的阶梯数。在算法设计中,使用while循环以允许重复读入多个N值。声明一个变量假设为flag,利用语句 while(flag){循环体} 来进行控制,当flag的值为1时可以接着输入,若为0则结束循环。
对每一次读入的N值,都要判断在 1~N 的范围内存在的满足要求的阶梯数个数。
判断时可采用for循环,循环变量设为i,由题意,i的初值从7开始取即可,for循环的循环条件为 i<N。
for语句的循环体中使用问题分析中列出的5个条件来检验每一个i值,能够满足所有5个条件的i值即为所求的阶梯数。
下面是完整的代码:
- #include<stdio.h>
- int main()
- {
- long n, sum, i;
- int flag=1;
- while(flag)
- {
- printf("输入N:");
- scanf("%ld", &n);
- printf("在1-%ld之间的阶梯数为:\n", n);
- sum=0;
- for( i=7; i<=n; i++ )
- if( i%7 == 0 )
- if( i%6 == 5 )
- if( i%5 == 4 )
- if( i%3 == 2 )
- {
- sum++;
- printf("%ld\n", i);
- }
- printf("在1-%ld之间,有%ld个数可以满足爱因斯坦对阶梯的要求。\n", n, sum);
- printf("继续请输入1,否则输入0:\n");
- scanf("%d", &flag);
- }
- return 0;
- }
运行结果:
输入N:123
在1-123之间的阶梯数为:
119
在1-123之间,有1个数可以满足爱因斯坦对阶梯的要求。
继续请输入1,否则输入0:
1
输入N:1234
在1-1234之间的阶梯数为:
119
329
539
749
959
1169
在1-1234之间,有6个数可以满足爱因斯坦对阶梯的要求。
继续请输入1,否则输入0:
C语言:爱因斯坦的数学题相关推荐
- C/C++基础讲解(二十九)之数值计算与趣味数学篇(百钱百鸡问题、爱因斯坦的数学题、三色球问题与马克思手稿中的数学题)
C/C++基础讲解(二十九)之数值计算与趣味数学篇(百钱百鸡问题.爱因斯坦的数学题.三色球问题与马克思手稿中的数学题) 程序之美 前言 很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本 ...
- 穷举法:一道爱因斯坦的数学题
爱因斯坦的数学题 爱因斯坦出了一道这样的数学题:有一条很长的楼梯,若每步跨2阶,则最后剩1阶:若每步跨3阶,则最后剩2阶:若每步跨5阶,则最后剩4阶:若每步跨6阶则最后剩5阶:每次跨7阶,最后才正好一 ...
- C语言爱因斯坦的数学游戏,C语言实例 爱因斯坦的数学题
您可能感兴趣的话题: C语言 核心提示:爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一 ...
- C语言每日一练——第83天:爱因斯坦的数学题
C语言每日一练 2022年2月27日 文章目录 题目描述 问题分析 代码实现 运行结果 题目描述 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩1阶,若每步跨3阶,则最后剩2阶,若 ...
- 爱因斯坦的数学题(C语言)
题目描述: 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶.只有每次跨7阶,最后才正好一阶 ...
- c语言的数学题目及答案,C语言编程实例:爱因斯坦的数学题
爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶.只有每次跨7阶,最后才正好一阶不剩.请问这 ...
- 东方博宜OJ 1265 - 【入门】爱因斯坦的数学题
题目描述: 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶.只有每次跨7阶,最后才正好一阶 ...
- Python数学问题22:爱因斯坦的数学题
1. 问题描述 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶.只有每次跨7阶,最后才正好 ...
- C语言--爱因斯坦谜题
尊重原创:http://blog.csdn.net/aspirationflow/article/details/7748364 C语言编程快速解决爱因斯坦谜题 2012年7月15日 1 问 ...
最新文章
- 概率图模型PGM——D map, I map, perfect map
- Build Search for Common Use Cases
- Pile 0009: Vim命令梳理
- OLTP和OLAP的区别
- pytest十二:cmd命令行参数
- SSO单点登录学习总结(1)——单点登录(SSO)原理解析
- mybatis中使用小于号
- 华为中级编程题目python_华为研发工程师编程题2019(python3)
- jenkins 控制台输出中文乱码
- 咪咕音乐HTML代码,python3爬取咪咕音乐榜信息(附源代码)
- android 条形码 两边空白,几个条形码的问题
- iPhone 13不会自动锁屏该怎么解决?
- 不为环境所动就能成功——职场人士寓言(3)
- abi-dumper 理解
- 使注册用户名时不能包含特殊符号
- 人工智能行业每日必读(01·15)
- 【数据结构与算法】单链表的插入和删除
- 清理android根目录垃圾,寻找Android手机垃圾文件的根源
- 图像卷积与滤波的一些知识点
- SVN+SSH协议工作方式全解析,以Sourceforge为例讲解如何在Windows下配置TortoiseSVN和Su
热门文章
- php命名空间非限定名称,PHP命名空间 - osc_nnp3dgfb的个人空间 - OSCHINA - 中文开源技术交流社区...
- PHP全栈学习笔记17
- Win11和Win10怎么禁用驱动程序强制签名? 关闭Windows系统驱动强制签名的技巧?
- 来与大家分享一些我们珍藏的、有力量的语句
- linux学习好文章,好网站
- python入门之字符串_03
- Python easyOCR图像文本提取 初识
- 公众号榜单 | 2020·8月公众号原创排行榜重磅发布
- FL Studio20.9中文补丁
- jupyter 中重新 import 模块