[問題] long long 的運算及輸出
遇到的問題: (題意請描述清楚)
我用 unsigned long long 定義我的函式,
這樣它的輸出範圍應該能到 0~2^64,
也就是至少能輸出19位,
但是實際計算,輸出後發現它到10位數後計算就錯誤了,
請問這是什麼原因?是溢位嘛?
該如何解決?謝謝!
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有問題的code: (請善用置底文標色功能)
#include<iostream>
#include<iomanip>
using namespace std;
unsigned long long sum( unsigned int n )//只能算10位?
{
return ( n + 1 ) * ( n ) / 2; //梯形公式
}
int main()
{
unsigned int n = 100000; //6位
cout << setw(20) << sum(n) << endl; //溢位了?
system("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.191.24
推
08/21 10:10, , 1F
08/21 10:10, 1F
→
08/21 10:11, , 2F
08/21 10:11, 2F
→
08/21 11:21, , 3F
08/21 11:21, 3F
→
08/21 11:22, , 4F
08/21 11:22, 4F
→
08/21 11:25, , 5F
08/21 11:25, 5F
推
08/21 11:29, , 6F
08/21 11:29, 6F
→
08/21 11:30, , 7F
08/21 11:30, 7F
→
08/21 11:31, , 8F
08/21 11:31, 8F
→
08/21 11:32, , 9F
08/21 11:32, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章