C语言编程问题

任务说明:

爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩余1阶;若每步跨3阶,最后剩下2阶;若每步5阶,最后剩下4 阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。 请问这条阶梯共有多少阶?

输入要求: 无
输出要求: 详见输入输出样例

输入输出样例:

Input sample:

Output:

119

1、输入有范围,两个变量输入都需要验证,方法变量处置范围以外,循环判断输入。

2、天数循环计数,日期0~6周期自增。用变量累加计数结果。

下面是演示代码:

#include<stdio.h>

int main()

{

    int i,j,a=7,n=366,cnt=0;

    while(a<0 || a>6)

        printf("请输入a的值(0~6):"),scanf("%d",&a);

    while(n<0 || n>365)

        printf("请输入n的值(0~365):"),scanf("%d",&n);

    for(i=0,j=a;i<n+1;i++,j++)

    {

        if(j==4) cnt++;

        if(j==6) j=-1;

    }

    printf("上机次数%d次\n",cnt);

    return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-08
先贴结果:
共有台阶:119

再贴代码
#include "stdio.h"
#include "conio.h"

main()
{
int num=1;
while(1)
{
if(num%2==1&&num%3==2&&num%5==4&&num%6==5&&num%7==0)
{
printf("共有台阶:%d",num);
break;
}
else
{
num++;
}
}
getch();
}

在写思路:
就是寻找从1开始的某个数能除7余0,除6余5……
while(1)是个死循环。我们从1开始一个一个试探,一旦找到这样的数。立马退出循环

楼主好运!
第2个回答  2012-04-08
#include <stdio.h>

void main()
{
int i,total;
for(i=0;;i++)
{
if(i%2==1 && i%3==2 && i%5 ==4 && i%6 ==5 && i%7 ==0)
{
total = i;
break;
break;
}
}
printf("%d",total);
}

如上代码请LZ测试一下,有疑问请追问。
临时写的,感觉应该没问题。如果有问题,可追加修改确保完全ok
第3个回答  2012-04-08
#include<stdio.h>
int main()
{
int x=0;
printf("Outpput:\n");
for(x;;++x)
{
if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0)
{
printf("%d\n",x);
break;
}
}
return 0;
}本回答被提问者采纳
第4个回答  2012-04-08
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a;
for (a=7;;a++)
{
if((a-1)%2==0&&(a-2)%3==0&&(a-4)%5==0&&(a-5)%6==0&&a%7==0)
{
printf("%d",a);
break;
}
}
system("pause");
}
相似回答