填空题A-"拍七"游戏

填空题A-"拍七"游戏

时间: 1ms        内存:128M

描述:

注:本题只需要提交标记为修改部分之间的代码,请按照C++方式提交。

“拍七”游戏。规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手。
一共有n个人围城一圈,小明是第m个,从第一个人开始报数,从1~1000,问小明一共需要拍多少次手。

#include<iostream>
using namespace std;
int main()
{
    int cnt=0,i,m,n;
    cin>>m>>n;
    for(i=1; i<=1000; i++)
    {
        if(i%7 ==0 && (i-m)%n==0)  //当前报数是7的倍数并且轮到小明报数
            cnt++;
        else
        {
            int ge,shi,bai;
            ge=i%10;
            shi=i/10%10;
            bai=i/100%10;
            /*
                请填写该部分代码
            */

        }
    }
    cout<<cnt<<endl;
    return 0;
}

输入:

m和n

输出:

拍手次数

示例输入:

1 10

示例输出:

30

提示:

参考答案(内存最优[1484]):


#include<iostream>
using namespace std;
int main()
{
    int cnt=0,i,m,n;
    cin>>m>>n;
    for(i=1; i<=1000; i++)
    {
        if(i%7 ==0 && (i-m)%n==0)
            cnt++;
        else
        {
            int ge,shi,bai;
            ge=i%10;
            shi=i/10%10;
            bai=i/100%10;
 if((ge==7||shi==7||bai==7)&&(i-m)%n==0)
                cnt++;
        }
    }
    cout<<cnt<<endl;
    return 0;
}

参考答案(时间最优[0]):


#include<iostream>
using namespace std;
int main()
{
    int cnt=0,i,m,n;
    cin>>m>>n;
    for(i=1; i<=1000; i++)
    {
        if(i%7 ==0 && (i-m)%n==0)
            cnt++;
        else
        {
            int ge,shi,bai;
            ge=i%10;
            shi=i/10%10;
            bai=i/100%10;
            if((ge==7||shi==7||bai==7)&&(i-m)%n==0)
                cnt++;
        }
    }
    cout<<cnt<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注