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下,非常的普通,肯回 定無法和南答理工相提並論,所以就算是考研,按照名氣選擇也是有...