当前位置: 代码迷 >> C语言 >> 爱因斯坦阶梯问题
  详细解决方案

爱因斯坦阶梯问题

热度:305   发布时间:2007-11-09 20:28:04.0
爱因斯坦阶梯问题
两格一跨剩一格,3格一跨剩一格,四,五,六格一跨剩一格,七格一跨正好完成

#include<stdio.h>
main(){
int i;
for(i=0;;i+=7)
if(i%2==1&&i%3==1&&i%4==1&&i%5==1&&i%6==1)
printf("%d",i);
}
怎么不对呢
搜索更多相关的解决方案: 爱因斯坦  阶梯  amp  int  main  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
main(){
int i; int sign=0;
for(i=0;sign==1;i+=7)
if(i%2==1&&i%3==1&&i%4==1&&i%5==1&&i%6==1)
printf("%d",i); sign=1;
}

怎么不对

----------------解决方案--------------------------------------------------------

#include <stdio.h>
#define MAX 10

int main(void)
{
int i;
int count = 0;
for(i = 7; count < MAX; i += 7)
{
if(i%2 == 1 && i%3 == 1 && i%4 == 1 && i%5 == 1 && i%6 == 1)
{
printf("%d\n", i);
count++;
}
}
getchar();
return 0;
}

/* 你的 for 循环没有判断语句 */

[此贴子已经被作者于2007-11-9 20:37:53编辑过]


----------------解决方案--------------------------------------------------------
以下是引用lzxm160在2007-11-9 20:30:08的发言:
#include<stdio.h>
main(){
int i; int sign=0;
for(i=0;sign==1;i+=7)
if(i%2==1&&i%3==1&&i%4==1&&i%5==1&&i%6==1)
printf("%d",i); sign=1;
}

怎么不对

singn = 0; // 进入了循环

for(i=0; sign != 1; i+=7)
if(i%2==1&&i%3==1&&i%4==1&&i%5==1&&i%6==1)
{
printf("%d",i);
sign = 1;
}

这样的话也只能打印一个符合条件的数字

参考楼上的程序。


[此贴子已经被作者于2007-11-9 20:46:24编辑过]


----------------解决方案--------------------------------------------------------

2,3,4,5,6公倍数数 + 1

printf("%d", 2 * 3 * 4 * 5 * 6 + 1);


----------------解决方案--------------------------------------------------------