| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1384 人关注过本帖
标题:爱因斯坦阶梯问题为什么我求出来是得2呢 帮忙看看吧
只看楼主 加入收藏
yl291145401
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-10-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
爱因斯坦阶梯问题为什么我求出来是得2呢 帮忙看看吧
爱因斯坦阶梯问题。设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。问满足条件的最少阶梯数是多少
这是问题

#include <stdio.h>
#include <stdlib.h>

int main()
{
int x=1;
do{
x++;
}

while((x-1)%2==0&&(x-2)%3==0&&(x-4)%5==0&&(x-5)%6==0&&x%7==0);
printf("%d",x);
return 0;

}
为什么我运行后的答案是2呢
搜索更多相关主题的帖子: 爱因斯坦 include return 
2011-11-04 09:49
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:2 
每步跨7阶,正好到阶梯顶。也就是这个数是7的倍数,
2011-11-04 09:53
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:2 
(i%2==1&&i%3==2&&i&&5==4&&i%6==5&&i%7==0)
2011-11-04 09:56
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
进入循环后,执行一次条件不成立就退出了
2011-11-04 10:04
wuyunxong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:148
注 册:2011-10-26
收藏
得分:2 
4楼正解
还有你能不能确定你的判断条件((x-1)%2==0&&(x-2)%3==0&&(x-4)%5==0&&(x-5)%6==0&&x%7==0)能达到你想要的
即使优先级结合性都是对的,最好还是加上括号,看着晕……
2011-11-04 10:33
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:2 
do while语句是先执行一次do语句,然后判断while后面的条件,如果条件成立,则进入下一次do语句的执行。
而你的程序在第一次判断的时候,x=2,则while后面的条件不成立,则结束循环。而此时的x为2,所以就输出了一个2。
程序代码:
#include <stdio.h>
main()
{
    int i;
    for(i=1;i<1000;i++)
    if(i%2==1 && i%3==2 &&i%5==4&&i%6==5&&i%7==0)
    {printf("%d\n",i);break;   }
    getch();
}
2011-11-04 10:35
wuyijiang07
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:177
注 册:2011-10-21
收藏
得分:2 
四楼正解,六楼的程序可以参考
2011-11-04 10:56
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:2 
程序代码:
#include <stdio.h>
#include <stdlib.h> 

int main()
{
    int x=7;
    do{
        if(((x-1)%2 == 0)&&((x-2)%3 == 0)&&((x-4)%5 == 0)&&((x-5)%6==0)&&(x%7 == 0))
        {   
            break;
        }
        else x++;
       
    }while(1); 

    printf("%d\n", x);
    return 0; 

} 

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-11-04 11:32
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h> 

int main()
{
    int x=7;
    do{
        if(((x-1)%2 == 0)&&((x-2)%3 == 0)&&((x-4)%5 == 0)&&((x-5)%6==0)&&(x%7 == 0))
        {  
            break;
        }
        else x+=7;
      
    }while(1); 

    printf("%d\n", x);
    return 0; 

}
2011-11-04 12:16
特浓百分百
Rank: 2
等 级:论坛游民
帖 子:8
专家分:14
注 册:2011-10-23
收藏
得分:2 
#include "stdafx.h"
void main(){
    int m=7;
    while(1){
        if(m%2==1&&m%3==2&&m%4==3&&m%5==4&&m%6==5&&m%7==0)
        {
            printf("最小阶梯数:%d\n",m);
            break;
        }
        m+=7;
    }
}
2011-11-04 13:01
快速回复:爱因斯坦阶梯问题为什么我求出来是得2呢 帮忙看看吧
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054574 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved