2017-02-04 253 views
-3

他們問我要添加什麼東西 。我想知道該怎麼添加。這條線是一個廢物。 SUGGEST ME AN EDIT這段代碼中rem == 0和rem = 0有什麼區別?

#include using 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]; 
} 
+0

rem == 0表示將rem值與零進行比較,rem = 0表示rem對rem變量賦值。 – rsp

+0

因此,如果(rem == 0)爲真,那麼它會返回1? –

+0

是的,如果真的返回1,如果假返回0. – rsp

回答

0

的一個值2之間的區別在於賦值運算符和比較運算符之間的差異。

rem == 0是比較運算符的一個示例,因爲正在比較rem的值是否爲零。在這種情況下,它會不是將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)。這個說法沒有比較;它只是用來分配值。

1

rem==0返回真或假,

例如:

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

rem=0; 

使REM變量具有0

1
rem == 0 

檢查是否rem操作數的值等於Zero與否,如果yes然後條件變爲真。

rem=0; 

Simple將值從右側指定到左側操作數。

1

'=='和'='運算符有很大的區別。

「==」是一個關係運算符

它檢查是否兩個操作數的值是相等的或不。如果是的話,那麼條件變成真,否則它變成錯誤的。

POSSIBLE USE 
    1. In if else loops 

「=」是一個賦值操作符

它從右側操作數左側操作數分配值。

POSSIBLE USE 
    1. During variable declaration and value assignment