算法||每步走 2 个台阶,最后剩 1 个台阶 每步走 3 个台阶,最后剩 2 个台阶 每步走 5 个台阶,最后剩 4 个台阶 每步走 6 个台阶,最后剩 5 个台阶 每步走 7 个台阶

问题:每步走 2 个台阶,最后剩 1 个台阶

每步走 3 个台阶,最后剩 2 个台阶

每步走 5 个台阶,最后剩 4 个台阶

每步走 6 个台阶,最后剩 5 个台阶

每步走 7 个台阶,最后剩 0 个台阶

请问一共有多少个台阶。编程实现,并说明自己程序的算法复杂度,并加以改进。

代码:

#include 
using namespace std;
int main(){
    int i=1;
    while(i<1000){
        if(i%2==1 && i%3==2 && i%5==4 && i%6==5 && i%7==0){
            cout<

 算法复杂度分析:说明是否需要改进,改进思路

时间复杂度:O(n)。

可对判断结构进行修改,减少次数。

 改进程序:

#include 
using namespace std;
int main(){
    int n=0;
    while(1){
        if((n+1)%30==0){
            cout<<""<

虽然两段程序在时间和空间复杂度上没有变化,但减少了计算机的判断执行次数,从而提高效率。

你可能感兴趣的:(算法,c++,开发语言)