題目內容:
我們認為2是第乙個素數,3是第二個素數,5是第三個素數,依次類推。
現在,給定兩個整數n和m,0< n<=m<=200,你的程式要計算第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。
輸入格式:
兩個整數,第乙個表示n,第二個表示m。
輸出格式:
乙個整數,表示第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。
輸入樣例:
2 4輸出樣例:
15時間限制:500ms記憶體限制:32000kb
開始讀錯題了,然後算了從n到m之間所有素數的和(以為n和m不一定是素數)。然後這個是錯誤的**:
#include
int main()
} if(isprime==1)
}printf("%d",sum);
return
0;}
注意:這個是錯誤的**,是我讀錯題的,比如輸入2 4,得到是5。
然後我說怎麼都得不到15呢,又看了遍題目發現錯了……
我的**比較傻,先得到第n個素數,然後得到第n到第m個素數之間的所有素數求和。所以用了4個for語句,覺得很浪費,因為也不會其他方法了。
我寫的正確的**:
#include
int main()
} if(isprime==1) }
//sum=x;
for(y=x;count
int j;
int isprime=1;
for(j=2;jif(y%j==0)
if(isprime==1)
}}printf("%d",sum);
return
0;}
因為題目中「0< n<=m<=200」是給定條件,就是說已經限定了n和m的輸入,所以我就沒有寫「在200以內」這個條件,也沒有判斷n和m的大小。
放上大神們的**:
asd8532大神:
int m,n,sum=0; //sum用來記錄素數 m n為使用者輸入
int flag=1; //flag用以標記當前是第幾個素數 預設為1
do
while(n<=0||m200); //健壯性 控制合理的使用者輸入
if(n==1)
sum+=2; // 第乙個素數為2 sum+2;
intis = 0;
for(int i=2;;i++)
//不是素數則跳出
}if(is==1)
}printf("%d\n",sum);
省去了乙個迴圈,只要判斷加和次數小於m就一直迴圈,直到達到m跳出。不用我那樣先迴圈到n,很麻煩。多了一次判斷,判斷是不是到第n個素數,到了再開始加和。當然多一次判斷要比多一次迴圈要快。
hellojju大神和另乙個不知名大神:
這裡放上鏈結
void main()
if (flag == 1)
} printf("本程式將計算第n個到第m個素數之間素數之和 \n");
printf("請輸入n和m,用空格隔開:");
while (scanf("%d %d", &n, &m))
}
這個就是先把所有0-200的素數放在乙個陣列a裡,然後再提取出n到m之間的所有素數加和,這個方法好厲害呀~
題目內容:
你的程式要讀入乙個整數,範圍是[-100000,100000]。然後,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:
yi er san si
注意,每個字的拼音之間有乙個空格,但是最後的字後面沒有空格。當遇到負數時,在輸出的開頭加上「fu」,如-2341輸出為:
fu er san si yi
輸入格式:
乙個整數,範圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30輸出樣例:
fu san ling
時間限制:500ms記憶體限制:32000kb
int
x;int mask=1;
scanf("%d",&x);
if(x
<0)
int t=abs(x);
while(t>9)
doelse
if(d==2)else
if(d==3)else
if(d==4)else
if(d==5)else
if(d==6)else
if(d==7)else
if(d==8)else
if(d==9)else
if(mask>9)
x%=mask;
mask/=10;
}while(mask>0);
printf("\n");
這是我的演算法,本來也想用switch-case但是想試試就用if。其餘大神們的演算法有很多,我這裡放上乙個:
鏈結在這裡
#include "stdio.h"
#include "string.h"
int main(int argc, char* argv)
if (i != (strlen(s) - 1))
strcat(output_str, " ");
}printf("%s\n", output_str);
return
0;}
可能還沒學這些,目前看不太懂。跑起來貌似不是c99和c11要加點東西才能跑。 中國大學慕課C語言第五講作業
題目內容 由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。0,1 之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果以多個整數來表示,每個整數表示結果的一位。即商的第一位用乙個整數來表示,第二位用另乙個整數來表示...
C語言 第四課
img 一 浮點型別的除法運算得出乙個浮點數結果,而整數除法運算則產生乙個整數結果。在c語言中,整數除法結果中如果有小數,則小數部分會被丟棄,這個過程被稱為 color green 截尾 color 二 取模運算子 用於整數運算。不要對浮點數使用取模運算子,那將是無效的。三 符號 被稱為賦值運算子,...
中國大學MOOC 浙大C語言學習筆記05
7.1 陣列運算 陣列的整合初始化 陣列初始化02 int num0 10 陣列的大小 sizeof給出的整個陣列所佔據的內容的大小,單位是位元組 sizeof a sizeof a 0 sizeof a 0 給出的陣列中單個元素的大小,相除得到了陣列的單元個數 一旦修改 中的初始資料,不需要修改遍...