本文目錄一覽:
- 1、C語言100以內所有質數,5個換行,並求和 急用,
- 2、對100個數進行求和用c語言程序編寫
- 3、c語言:將100以內所有的所有的5的倍數求和並輸出
- 4、用任意個1,2,5相加的和等於100,用C語言編程
- 5、C語言編程實現輸入一串長度最大為100位的數字,輸出各位數字相加的結果?
- 6、c語言求和 s=1+2+5+..+100
C語言100以內所有質數,5個換行,並求和 急用,
#includestdio.h
#includemath.h
int main()
{
int a[25],flag,pos=0,sum=0;//a[25]存放100以內的質數,flag為標誌位,若不是質
//就賦值為0,pos記錄a[25]中的下一個存儲下標,sum存放質數之和。
for(int i=2;i!=101;i++)
{//循環遍歷2-100的數,1不是質數
flag=1;
for(int j=0;(j!=pos)(a[j]=floor(sqrt(i)));j++)
{//根據質數判斷定理:「對正整數n,如果用小於或等於根號n的所有質數去除,
//無法整除,則n為質數」 ,pos之前的位置都存放了質數。
if(i%a[j]==0)
{
flag=0;
break;
}
}
if(flag||!pos)
{//此處的pos取反,用於第一個質數存入,第一個質數不滿足上面的判斷
a[pos]=i;
sum+=a[pos];
++pos;
}
}
//顯示所有質數
for(int i=0;i!=25;i++)
{
printf(“%d “,a[i]);
}
//列印和
printf(“\n求得的和為:\n”);
printf(“%d\n”,sum);
}
結果如圖:
對100個數進行求和用c語言程序編寫
#include stdio.h
void main() {
int arr[100],i,sum=0;
for(i=0; i100; i++) {
printf(“請輸入第%d個數:”,i+1);
scanf(“%d”,arr[i]);
sum+=arr[i];
}
printf(“\n總和為:%d”,sum);
}
手機網頁版知道看著可能會很亂,切換到電腦版就可以了。
c語言:將100以內所有的所有的5的倍數求和並輸出
#includestdio.h
int main()
{
int sum=0;
int i=5;
while(i=100)
{
sum+=i;
i+=5;
}
printf(“%d\n”,sum);
return 0;
}
用任意個1,2,5相加的和等於100,用C語言編程
枚舉太慢了,總共需要101*51*21=100000+次計算
其實 可以設計更簡單的演算法
for(int k=20;k=0;k–)
{
int temp=5*(20-k);
if(k%2==0)
{
for(int i=0;i=temp;i=i+2)
{
int j=(temp-i)/2;
couti’\t’j’\t’kendl;
}
}
else
{
for(int i=1;i=temp;i=i+2)
{
int j=(temp-i)/2;
couti’\t’j’\t’kendl;
}
}
}
雖然代碼是枚舉的幾倍長,但是 計算次數 只有(0*5+2)/2+(1*5+1)/2+(2*5+2)/2+(3*5+1)/2+……+(20*5+2)/2=(11*2+10*1+210*5)/2=1082/2=541次
結果令我也感到驚訝了!!!!
C語言編程實現輸入一串長度最大為100位的數字,輸出各位數字相加的結果?
這個題目才用字元輸入的形式,就比較方便,每次讀入一個字元,把它轉換為相應的數字,以後進行累加,當讀到的字元是回車符的時候就結束,最後說出累加的答案
c語言求和 s=1+2+5+..+100
可以用while
#include
main()
{
int
sum=0;
int
i=1,n=1;
while(i=100)//因為要相加最後一個數是100,所以循環到這裡
{
sum=sum+i;
i=i+n;
n=n+2;//因為1、3、5……每個數都相差2,所以加2
}
printf(“%d”,sum);
getch();
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237736.html