杭電acm1001,我錯哪了,杭電ACM1001我哪錯了

2022-12-21 10:05:51 字數 2070 閱讀 9010

1樓:匿名使用者

sum=a*(a+1)/2; //這裡出了問題 注意,是出了問題,公式並沒有錯.

因為sum是int 32位的整型資料,當a足夠大的時候,該表示式在計算 a*(a+1)

時,已經超出了 int 的範圍,解決方案有兩個:

一:把long sum;

改為:long long sum;

//ok!我不知道c是怎樣分的,反正在c++中 long 和 int 的字元長度是一樣的.

二:不用公式,用迴圈語句做.

以下是我提交的內容,僅供參考,謝謝:

我是c++愛好者,歡迎有空來我部落格交流,分享.

錯誤原因: 在公式中 會先計算 n+1 再乘以 n ,若n的初值足夠大的時候,此時的 n 已經超出int的範圍,

解決方案: 把n的型別定義為 long long n; (注:_int64 同等於 long long 但在正規的acm競賽中,可能會出錯)*/

2樓:鼻涕菜鳥

我做出來啦~~~

#include

int main()

return 0;

}考慮到n*(n+1)要資料溢位,判斷奇偶性的,並且輸入資料不定,不能

用n個代替,(*^__^*) 嘻嘻……,辛苦啊

3樓:下沙怪才

printf("ld",sum);

你沒有換行

杭電acm1001我哪錯了

4樓:

#include

int main()

printf("%d\n\n",sum);//換行在後面,而且每個資料後面都要有一個空行}}

5樓:匿名使用者

親,如果你讀入的a的值比較小的話,你的演算法可行,可如果a的值過大,sum就會溢位,運算結會果出錯,你可以驗證的

6樓:匿名使用者

沒錯啊 只是 結尾的話要返回一個值 不過這只是警告吧

7樓:凝霜寒芒

雖然沒做過acm多少題,看你**是求1到輸入資料之和吧?acm不是要求時間和空間嗎?你這麼算求和是不是在時間上花太多了啊?試試數學的求和公式唄

杭電acm 2024 我錯哪了?

8樓:匿名使用者

#include

#include

int main()

}if(flag) printf("yes\n");

else printf("no\n");

}return (0);

}首先要明白,識別符號有大小寫數字和下劃線組成(第一個字元由下劃線或字母組成)。所以你在判斷第一個字元時就判錯了(除字母和下劃線外都是錯誤的)

以下是你的**:

#include

#include

int main()

if (k==0)

printf("no\n");

else

printf("yes\n");

}return 0;

}我的ac了的 ,你看看分析分析吧

9樓:

#include

using namespace std;

int main()

for (i=0;i=0&&t<=25)||(x>=0&&x<=25)||(y>=0&&y<=9))

continue;

u=1;

break;

}if (u==0) puts("yes");

else puts("no");}}

10樓:智趣派

你怎麼整天問別人杭電oj上的題你錯在**??acm需要堅實的程式設計基礎和紮實的debug能力,這些都是要自己練的,你問別人就等於依賴於別人來給你debug,這對你能力提高非常不利!

杭電acm第幾頁題目比較簡單

16頁,你看哪頁中文題目比較多就是了 其實果斷的是第11頁從2000到2099,前50題是最簡單的題目了,因為都是c語言基礎練習題。基本想刷的話。一天就可以刷完的。還有找簡單題目方法就是在題目列表裡搜尋acm 搜尋型別算source。然後找那些acm課程期末考試的題目。中文題目的都比較簡單 那幾道a...

杭電2019題,一年多少天求教,杭電2005題,一年多少天求教

1全部 includeint main printf d n sum 我這個看的好一點,自己ac的,貼出來希望對你有幫助,這是我以前寫的,稍微差了點,更優化點就是建立個陣列month 12 然後只要處理2月然後就是一個迴圈for int i 0 i 把判斷閏年的if調一下位置就好了 include ...

南理工和杭電的電子哪個更好一些,南理工和杭電的電子哪個更好一些

杭電的電子是王牌專業 理工大四系明顯更強啊 求問南京理工大學和杭州電子科技大學的電路與系統考研哪個好 南京理工大學整體肯定比杭電好,但是杭電的 沒有聽說過bai杭州電子科技大學 du這個學校zhi,特地 去搜了一dao下,非常的普通,肯回 定無法和南答理工相提並論,所以就算是考研,按照名氣選擇也是有...