osh...这个程序一个是C写的,一个是C++写的,C能够通过系统,C++却TLE。大神帮忙看看

#include
int main()
{
int n;
int a,b,c,y;
scanf("%d",&n);
while (n--)
{
scanf("%d%d%d",&a,&b,&c);
if (c==1)
{
if (a==b)
{
if (a==0) printf("1\n");
else printf("0\n");
}
else printf("None\n");

    }
    else
    {
        if ((b*c-a)%(1-c)==0)
        {
            y = (b*c-a)/(1-c);
            if (y+b>0&&y>=0) printf("%d\n",y);
            else printf("None\n");
        }
        else printf("None\n");
    }
}
return 0;

}

#include
using namespace std;
int main()
{
int K;
cin>>K;
while(K--)
{
int a,b,c,s;
cin>>a>>b>>c;
if(c==1)
{
if(a==b)

        {
            if(a==0)
                cout<<1<<endl;
            else
                cout<<0<<endl;

        }
        else
            cout<<"None"<<endl;
    }
    else if((c*b-a)%(1-c)==0)
    {
      s=(c*b-a)/(1-c);
        if(s+b>0&&s>=0)
            cout<<s<<endl;
        else
            cout<<"None"<<endl;
    }
    else
        cout<<"None"<<endl;
}
return 0;

}
//求方程 (x+a)/(x+b) = c的非负整数根,其中a,b,c都是非负整数。

就你的程序来说,if else括号不同,代码可能走不通的分支。

看写法都差不多。。请出来具体的错误是什么。。。

建议还是多看看你的算法是否正确。。。