![]() |
||
|
Major Member
![]() 加入日期: Oct 2004 您的住址: 高雄的大醫院附近
文章: 216
|
引用:
要完整的嗎??應該是 3 and 7 或是 3 or 7 .... 先從3 and 7 開始... int sum1 = 0; for(int i = 1; i * 21 < 10000 ; i++) { sum1 += i*21; } printf("%d",sum1); 再來是 3 or 7 的 sum2 = 0; for(i = 1; i * 3 < 10000 ; i++) { sum2 += i*3; } for(i = 1; i * 7 < 10000 ; i++) { sum2 += i*7; } printf("%d", sum2 - sum1 ); 偷懶法... 要不然應該像前面大大一樣用 % 會比較快....
__________________
過去的荒唐 好男人壞男人,還不都是你們害的、原來Y拍已經是廠商才能呆的地方了 最近的誑語 [感想]給8點檔的編劇們(三、民)、 [大科技廠]某美面板的cost down、 理論上來說,最極品的妹 此文章於 2005-04-21 06:13 PM 被 songmong12 編輯. |
||||||||
|
|
|
Junior Member
![]() ![]() ![]() 加入日期: May 2004 您的住址: 修得文武藝, 賣與帝王家
文章: 770
|
不會用JAVA只會用JS
T = 0; for(i=0; i<10000; i++) (i % 3)||(i % 7) ? T += i : T; alert(T); 我承認我是來亂的.... ![]()
__________________
|
||
|
|
|
Major Member
![]() 加入日期: Nov 2004 您的住址: 高雄
文章: 276
|
代碼:
class ThousandExam
{
public static void main( String [] args )
{
int sum = 0; //算總和
int count = 0; //算個數
for ( int i=1; i<=10000; i++ )
{
//假設是3 AND 7 好了
if ( ((i%3)==0) && ((i%7)==0) )
{
sum += i; //算和
++count; //算個數
}
}
System.out.printf( "1~10000中能被3及7整除的數值共有 %d 個, 數值和為 %d .\n", count, sum );
}
}
只對數列中每一個數檢查一次(用兩個條件檢查), 沒有重複加入兩者公倍數的問題, 應該不用減去公倍數(交集)吧∼ 數列走兩次才會發生重複加入, 那走一次就好囉! ![]()
__________________
![]() It's when you start to become really afraid of death, that you learn to appreciate life. [Leon] 此文章於 2005-04-22 04:17 AM 被 嚐起來像雞 編輯. |
|
|