这段代码中rem == 0和rem = 0有什么区别?

时间:2017-02-04 06:08:51

标签: c++

他们要我添加东西 我知道要添加什么。这条线路是一种废物。 建议我编辑

的#include     使用namespace std;

typedef long long lli;

lli mod = 1000000007;

int n;
char a[200000 + 10];
lli dp[200000 + 10][9];

lli solve(int pos, int rem)
{
    if (pos == n) //**HERE** 
        return (rem == 0);

    if (dp[pos][rem] != -1)
        return dp[pos][rem];

    dp[pos][rem] = 0;
    if (pos + 1 <= n)
        dp[pos][rem] = solve(pos + 1, (rem * 10 + (a[pos] - '0')) % 8);
    if (pos + 1 <= n)
        dp[pos][rem] += solve(pos + 1, rem);
    dp[pos][rem] %= mod;

    return dp[pos][rem];
}

4 个答案:

答案 0 :(得分:1)

rem==0返回true或false,

例如:

 rem=5;
 rem=rem-5;
 if(a==0)
   cout<<"YES";

rem=0;

使rem变量的值为0.

答案 1 :(得分:1)

rem == 0

检查rem操作数的值是否等于Zero,如果yes则条件变为真。

rem=0;

Simple从右侧操作数到左侧操作数分配值。

答案 2 :(得分:1)

&#39; ==&#39;之间存在很大差异。和&#39; =&#39;运营商。

&#39; ==&#39;是一个关系运营商

它检查两个操作数的值是否相等。如果是,则条件变为真,否则变为假。

POSSIBLE USE
    1. In if else loops

&#39; =&#39;是指派操作员

它将右侧操作数的值分配给左侧操作数。

POSSIBLE USE
    1. During variable declaration and value assignment

答案 3 :(得分:0)

2之间的差异是赋值运算符和比较运算符之间的差异。

rem == 0是比较运算符的示例,因为正在进行比较以查看rem的值是否为零。在这种情况下, NOT 将rem设置为零!

如果rem等于零,则代码中的以下行:

    return (rem == 0);

相同
    return true; // or return 1, both mean the same thing in the bool expression. It returns true as the statement is true

然而如果的话,那个rem不等于0,那么:

    return (rem == 0);

将与:

相同
    return false; // or return 0, because the statement is false because rem is not equal to 0

继续rem = 0所做的是,它只是在等号(即rem)左边的变量上指定等号右边的值(即0)。这句话没有比较;它仅用于分配值。