2017-04-02 177 views
-3

同時解決hackerearth問題時,我得到了這個錯誤,我試圖找到解決方案,但無處不在,當2種不同的數據類型被用作操作數時,在我的情況下,兩個大人數據類型的操作數,這裏是我的全部代碼無效的操作數類型'雙'和'雙'到二進制'操作符%'

#include <iostream> 
#include <math.h> 
using namespace std; 
int main() 
{ 
    int arr[1000]; 
    int n; 
    cin>>n; 
    double ans=1; 
    for(int i =0; i<n ;i++) 
    { 
     cin >> arr[i]; 
     ans=(ans*arr[i])%(pow(10,9)+7); 
    } 
    cout << ans; 
    return 0; 

} 

回答

0

12.3 % 4.2的預期產量是多少? 如果你有這個答案,你也必須推出自己的實現,內置operator%作品只適用於整數類型。

如果你沒有問題,但你的參數碰巧是浮點值,round/floow/ceil/cast它們。例如:

static_cast<uint64_t>(double_value); 
0

模塊操作(即operator%)不浮動點定義,但僅整數。

如您宣稱ans爲雙倍,您的表達式ans*arr[i]評估爲雙倍。將其更改爲int ans將會出現編譯錯誤的語句(實際返回整數模)。

相關問題