第1个回答 2013-11-08
按我的思维推断:看第一句“若每步跨2阶,则最后剩余1阶”,即该长阶数一定是奇数! 再看第三句“ 若每步跨5阶,则最后剩余4阶”,即该长阶数末尾一定是9!为什么?因为该长阶数减4后能被5整除,能被5整除的只有0或5,那0或5加4后等于4或9,再看回第一条,该数既然是奇数,那肯定是末尾9啦! 突然,我想到另外一个特征,这道题的每一条,长阶数减去剩余的阶数,再除于每步跨的阶数,余数一定是0,main() { int a=1;/* 定义长阶数是变量a,初始值为1 */ while((a-1)%2!=0 || (a-2)%3!=0 || (a-4)%5!=0 || (a-5)%6!=0 || a%7!=0) { a++; /* 把题目每个特征写下来,不断循环测试,只要不符合任何一个特征,都要继续循环 */ } printf("%d",a); /* 最后输出长阶数 */ } 又想了一下,长阶数是7的倍数,那么能不能将步长值修改一下,减少运行次数呢? 把变量a初始值改为7,步长值改为7,即: main() { int a=7;/* 变量a初始值为7*/ while((a-1)%2!=0 || (a-2)%3!=0 || (a-4)%5!=0 || (a-5)%6!=0 || a%7!=0) { a=a+7; /* 步长值改为7 */ } printf("%d",a); } 最后得出结果:119