阶梯问题
实例说明:
在你面前有一条长长的阶梯:如果每步跨2阶,那么最后剩1阶;如果每步跨3阶,那么最后剩2阶;如果每步跨5阶,那么最后剩4阶;如果每步跨6阶,那么最后剩5阶;只有当每步跨7阶时,最后才正好走完,一阶也不剩。请问这条阶梯至少有多少阶?(求所有三位阶梯数)
实现过程:
1. 在VC++6.0中创建一个C文件
2. 引用头文件,代码如下:
#include <stdio.h>
3. 程序主要代码如下:
// 阶梯问题
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 100; /*定义基本整型变量a*/
//可以使用while循环完成本实例
while (a <= 999)
{
/*根据题意写出对应的条件*/
if (a % 2 == 1 && a % 3 == 2 && a % 5 == 4 && a % 6 == 5 && a % 7 == 0)
{
/*输出阶梯数*/
printf("阶梯数为:%d\n", a);
}
a++;
}
putchar('\n');/*与本实例无关,只是为了分隔开for和while循环*/
putchar('\n');/*与本实例无关,只是为了分隔开for和while循环*/
putchar('\n');/*与本实例无关,只是为了分隔开for和while循环*/
//也可以使用for循环完成本实例
int i; /*定义基本整型变量a*/
for (i = 100; i < 1000; i++) /*for循环求 100~1000内的所有三位数*/
{
/*根据题意写出对应的条件*/
if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5 && i % 7 == 0)
{
/*输出阶梯数*/
printf("阶梯数为:%d\n", i);
}
}
return 0;
}
运行结果:
技术要点:
本实例的关键是如何来写if语句中的条件,如果这个条件大家能够顺利地写出,那整个程序也基本上完成了。条件如何来写主要是根据题意来看,“当每步跨2阶时,最后剩1阶……当每步跨7阶时,最后正好走完,一阶也不剩”从这几句可以看出题的规律就是总的阶梯数对每步跨的阶梯数取余得的结果就是剩余阶梯数,这5种情况是&&的关系即必须同时满足。
希望能对您的学习和生活有所帮助!