【华为练习题】 爱因斯坦阶梯(初级)
来源:互联网 发布:java分数约分 编辑:程序博客网 时间:2024/04/29 19:04
【华为练习题】 爱因斯坦阶梯(初级)
题目
述: 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶?
分析
一个数满足除以2余1,除以3余2,除以5余4,除以6余5,那么这个数为2,3,5,6的最小公倍数减一。
解答
直接解法
#include "stdafx.h"#include <iostream>using namespace std;int main(){ int i = 29; while (i % 7) { i += 30; } cout << i << endl; return 0;}
通用解法
#include <iostream>using namespace std;int maxDivisor(int n, int m){ int n1 = n > m ? n : m; int n2 = n + m - n1; while (n1 % n2) { int divisor = n1 % n2; n1 = n2; n2 = divisor; } return n2;}int minMultiple(int n, int m){ int div = maxDivisor(n,m); return n * m / div;}int main(){ int i = minMultiple(minMultiple(minMultiple(2,3),5),6), n = i - 1; while (n % 7) { n += i; } cout << n << endl; return 0;}
1 0
- 【华为练习题】 爱因斯坦阶梯(初级)
- 【华为练习题】 阿姆斯特朗数(初级)
- 【华为练习题 】 n位水仙花数(初级)
- 【华为练习题】 最后一个单词的长度(初级)
- 爱因斯坦阶梯问题
- 爱因斯坦的阶梯问题
- 爱因斯坦阶梯问题
- 爱因斯坦阶梯问题
- 求解爱因斯坦阶梯问题。
- 爱因斯坦阶梯问题
- 60-爱因斯坦的阶梯问题
- C语言 爱因斯坦阶梯问题
- C语言编程--爱因斯坦的阶梯问题
- 【Java笔试题】爱因斯坦的阶梯问题
- 华为组练习题(一)
- 杭电 oj 超级阶梯(初级dp)
- 【华为练习题】 求最大凸多边形(高级)
- 【华为练习题】 闯迷宫(高级)
- [Codeforces 176B] Word Cut (脑洞+KMP+dp)
- job hunting
- Android 解决ViewPage轮播两张崩溃问题
- 数据结构实验之查找六:顺序查找
- 设计模式(1)----观察者
- 【华为练习题】 爱因斯坦阶梯(初级)
- 面向对象
- iOS获取父控制器swift
- mysql中char与varchar的区别分析
- iOS 常见问题汇总 持续更新
- 实现时间Widget自动更新
- C++虚继承的意义
- could not read json : unrecognized field "$$hashkey"
- Nginx源码分析 - Event事件篇 - Nginx的Event事件模块概览