改错题B-迷宫的秘密机关

改错题B-迷宫的秘密机关

时间: 1ms        内存:128M

描述:

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

军军和小公主到迷宫去游玩,发现了一个秘密机关,机关的门口标有-n至n这2n+1个整数。
此时传来了一个机器人的声音:按两个不同数字,使其积等于m(两个数不分顺序),则符合要求的按法共有多少种?

C++代码部分

#include <iostream>
using namespace std;
int maze(int n,int m)
{
    int i,j,cnt=0;
    /*****修改的起始行******/
    for(i=-n; i<=n; i++)
        for(j=i+1; j<=n; i++)      //可能出错
            if(m=i*j)                     //可能出错
                cnt++;                    //可能出错
    /*****修改的终止行*****/
    return cnt;
}

int main()
{
    int n,m,result;
    while(cin>>n>>m)
    {
        result = maze(n,m);
        cout<<result<<endl;
    }
    return 0;
}

C代码部分

#include <stdio.h>
int maze(int n,int m)
{
    int i,j,cnt=0;
    /*****修改的起始行******/
    for(i=-n; i<=n; i++)
        for(j=i+1; j<=n; i++)      //可能出错
            if(m=i*j)                     //可能出错
                cnt++;                    //可能出错
    /*****修改的终止行*****/
    return cnt;
}

int main()
{
    int n,m,result;
    while(~scanf("%d%d",&n,&m))
    {
        result = maze(n,m);
        printf("%d\n",result);
    }
    return 0;
}

输入:

输入n和m(包含多组测试数据)

输出:

按法数目

示例输入:

9 18
12 16
6 10
8 12

示例输出:

4
2
2
4

提示:

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


#include <stdio.h>
int maze(int n,int m)
{
    int i,j,cnt=0;
for(i=-n; i<=n; i++)
        for(j=i+1; j<=n; j++)      //可能出错
            if(m==i*j)                     //可能出错
                cnt++;    
    return cnt;
}

int main()
{
    int n,m,result;
    while(~scanf("%d%d",&n,&m))
    {
        result = maze(n,m);
        printf("%d\n",result);
    }
    return 0;
}

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


#include <iostream>
using namespace std;
int maze(int n,int m)
{
    int i,j,cnt=0;
    for(i=-n; i<=n; i++)
        for(j=i+1; j<=n; j++)
            if(i*j==m)
                cnt++;
    return cnt;
}

int main()
{
    int n,m,result;
    while(cin>>n>>m)
    {
        result = maze(n,m);
        cout<<result<<endl;
    }
    return 0;
}

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

点赞

发表评论

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