HDU 1001就卡了。
受到小白的啟發遇到這樣的循環題目直接轉化成公式求解以優化時間。但是!我就是過不了!
問題代碼:
#include<stdio.h> int main() { int a; while(scanf("%d",&a)!=EOF) printf("%d\n\n",a*(1+a)/2); return 0; }
問題在於雖然題目中表示最後結果會在32bit內,但是沒保證a*(1+a)也是32bit.......菜鳥又忽略了在除法運算前的隱性類型轉化,導致在數據適當大的情況下結果為0.......
這個就過了.......
#include<stdio.h> int main() { long long a; while(scanf("%lld",&a)!=EOF) printf("%lld\n\n",a*(1+a)/2); return 0; }