问题: 厨师先生已被给予N号。他倾向于将他得到的任何东西加倍。所以现在他和他一起得到N号,并且他将N数乘以2.现在Chef很迷信。他相信一些被称为幸运数字的东西。他的幸运数字被定义为任何数字,其中 当乘以2时除了1,2和N之外没有其他因素。如果数字是幸运的,你所要做的就是打印“LUCKY NUMBER”。如果号码不是幸运号码,请打印“对不起”.. 输入
第一行包含T,即测试用例的数量。接下来的T行的每一行都由N组成。 输出
如果数字是幸运的话打印LUCKY NUMBER,如果数字不幸,则打印“抱歉”,然后是新行。 约束
1 <= T <= 1000
1·; = N&LT; = 1000000
输入
3
26
12
11
输出:
抱歉
抱歉
LUCKY NUMBER
我的计划
#include <iostream>
using namespace std;
int main()
{
int x;
string l;
cout << "Input Number Codechef.." << endl;
cin>>x;
COND:
if ((x*2)%1 = 0 && (x*2)%2 = 0 && (x*2)%3 != 0)
{
l = "LUCKY NUMBER";
cout<<l;
else
{
l = "sorry";
cout<<l;
}
}
if (l = "LUCKY NUMBER")
{
break;
else
{
goto COND;
}
}
return 0;
}
答案 0 :(得分:1)
比较数据时,应使用=
而非l="hello";
,因为一个等式符号表示赋值,其中两个表示测试是否相等。
"hello"
将值l
分配给变量l=="hello"
,而l
在"hello"
等于l="hello"
时返回true(1)如果不是,则为false(0)。
这意味着,if (l = "LUCKY NUMBER")
{
break;
else
{
goto COND;
}
}
将始终结果为true。
此外,你似乎在逻辑(和代码)中有一个错误:
if (l == "LUCKY NUMBER") break;
else goto COND;
你想这样写:
if ((x*2)%1 = 0 && (x*2)%2 = 0 && (x*2)%3 != 0)
{
l = "LUCKY NUMBER";
cout<<l;
else
{
l = "sorry";
cout<<l;
}
}
这里也是如此
if (((x*2)%1 == 0) && ((x*2)%2 == 0) && ((x*2)%3 != 0))
l = "LUCKY NUMBER";
else l = "sorry";
cout<<l;
你需要这个:
{{1}}