程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> HDU1001 關於累加公式的隱性類型轉換,hdu1001累加公式

HDU1001 關於累加公式的隱性類型轉換,hdu1001累加公式

編輯:關於C語言

HDU1001 關於累加公式的隱性類型轉換,hdu1001累加公式


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;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved