回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> C/C++源代码 >> C/C++ 小程序 >> 爱因斯坦阶梯问题
最 近 更 新
[C++] 去除文件中重复的..
C++ Primer 第四版源代码
[C++] 不怕溢出的 sprintf
文件分割合并器(加入图..推荐
[C++] 简单垃圾回收器推荐
清除多余空格
[C++] dump file推荐
爱因斯坦阶梯问题
简单加密程序源代码
[C++] 最大公约数求解
最 新 推 荐
文件分割合并器(加入图..推荐
[C++] 简单垃圾回收器推荐
[C++] dump file推荐
热 门 排 行
简单加密程序源代码
爱因斯坦阶梯问题
[C++] dump file推荐
C++ Primer 第四版源代码
清除多余空格
文件分割合并器(加入图..推荐
[C++] 最大公约数求解
[C++] 简单垃圾回收器推荐
[C++] 去除文件中重复的..
[C++] 不怕溢出的 sprintf
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

爱因斯坦阶梯问题


来源:蚂蚁的 C/C++ 标准编程 作者:antigloss 等级:一般
发布于2006-01-21 00:02 被读5512次 【字体:

/***************************************************
 * 问题:在你面前有一条长长的阶梯。如果你每步跨2阶,
 *      那么最后剩下1阶;如果你每步跨3阶,那么最后
 *      剩2阶;如果你每步跨5阶,那么最后剩4阶;如果
 *      你每步跨6阶,那么最后剩5阶;只有当你每步跨
 *      7 阶时,最后才正好走完,一阶也不剩。
 *     请问这条阶梯至少有多少阶?
 * 分析:所求的阶梯数应比 2、3、5、6 的公倍数
 *      (即 30 的倍数)小 1,并且是 7 的倍数。
 *       因此只需从 29、59、89、119、……中找
 *       7 的倍数就可以了。可以得到答案为 119 阶
 ***************************************************/

#include <stdio.h>

int main(void)
{
    int steps = 29, i = 1;
   
    while ( steps % 7 )
    {
        steps = (30 * ++i) - 1;
    }
   
    printf("Total steps: %d\n", steps);
   
    return 0;
}

本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。



相关专题:暂无相关专题

上一篇:简单加密程序源代码
下一篇:[C++] dump file

共有评论 2 条 网友评分 2分 查看全部评论

游客:styfwz
评分:0
发一段专业素质的代码:
/***************************************************
*      FileName      : EinstainStep.cpp
*      Aurthor       : Lance Shi
*      Description   : To maintain the problem
*                       produced by Einstain
***************************************************/

#include <iostream>
#include <cstdlib>
using namespace std;

/****************************************************
*      Function      : Main
*      Parameter     : None
*      return        : 0 on Success
*                      None 0 on Failure
****************************************************/

int main()
{
    int nresult_plus = 0;
   
    while(true)
    {
        nresult_plus += 30;
        if(0 == (nresult_plus - 1) % 7)
            break;
    }
    cout << nresult_plus - 1 << endl;
   
    system("pause");
    return 0;
}
游客:styfwz
评分:0
很遗憾,很多东西都被转译符化了。抱歉

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss