1. 誰能給我一個從1開始的奇數求和的演算法程序 越簡單越好
#include
<stdio.h>
int
main()
{
int
n,
sum
=
0,
i;
scanf("%d",
&n);
for(i
=
1;
i
<=
n;
i
+=
2)
sum
+=i;
printf("sum=%d\n",
sum);
return
0;
}
這個就是直接模擬,比較簡單,或者你也可以用公式求,就首項加尾項*項數再除以2這樣:D
2. 計算且輸出a到b之間的奇數和及個數
一、演算法分析:要計算a b之間所有奇數和,那麼最樸素的演算法可以設計如下: 1、輸入a,b值; 2、循環遍歷a b之間的所有數值,如果為奇數,則累加; 3、輸出結果。二、演算法優化: 1、由於連續奇數之間差值為2,所以可以判斷出第一個奇數,然後依次加2得到所有奇數,將所有奇數累加即可。 2、連續奇數屬於等差數列,所以可以利用等差數列求和公式,更快捷的得到結果。三、參考代碼: 1、原始演算法代碼: #include int add(int a, int b){ int m,n,s=0; if(aint add(int a, int b){ int m,n,s=0; if(aint add(int a, int b){ int m,n,s=0; if(a
3. 連續的數相加有什麼簡便演算法嗎
用第一個數加上最後一個數乘以這批數的總個數,然後除以2,
即:(首+尾)*個數/2
求總個數的方法:
1.連續自然數:用最後一個數減第一個數然後加1(尾-首+1)
2.連續偶數:以2開頭的,最後一個數除以2即:(尾/2);不以2開頭的,先用最後一個數除以2,再用第一個數減2的差除以2,然後把兩個結果相減.即:尾/2-(首-2)/2
3.連續奇數:以一開頭的,用最後一個數加1然後除以2即:(尾+1)/2;不是以1開頭的,先用最後一個數減1的差除以2,然後用第一個數加1的和除以2,接著把兩個結果相減.即:(尾+1)/2-(首-1)/2
4. 求1到100的奇數之和,並畫出流程圖
1到100的奇數之和:
1、常規解法:1+3+5+7+9+.+91+93+95+97+99=
1到100一共50對 奇數一共有25對 偶數也是25對
所以1和99 3和97 5和95 以此類推 一共有25個100
=100×25
=2500
2、編程思路:利用循環變數i 來進行求和,流程圖如下所示,
解:因為i=1,S=0為起始變數,而所求的是連續50個奇數的和,則I是循環變數,增加量為2,而和S由0,再加I即為和的值。
(4)奇數累加演算法擴展閱讀:
利用編程求和
i=0
sum1=0
sum2=0
while i<=100:
if i%2==0:
sum1+=i
else:
sum2+=i
i+=1
print('1-100之間偶數和為:%d' % sum1)
print('1-100之間偶數和為:%d' % sum2)
5. 從1單數加到49怎麼演算法
從1單數加到49計算:
1+3+5+……+49=(1+49)+(3+47)+……+(23+27)+25
=50*12+25
=600+25
=625
從1單數加到49是指從1開始至49的所有單數相加的和。
單數即為奇數。
奇數(英文:odd)數學術語 ,口語中也稱作單數, 整數中,能被2整除的數是偶數,不能被2整除的數是奇數,奇數個位為1,3,5,7,9。偶數可用2k表示,奇數可用2k+1表示,這里k是整數。
1、在整數中,不能被2整除的數叫做奇數。日常生活中,人們通常把奇數叫做單數,它跟偶數是相對的。
2、奇數可以分為:
正奇數:1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31、33.........
負奇數:-1、-3、-5、-7、-9、-11、-13、-15、-17、-19、-21、-23.-25、-27、-29、-31、-33.........
6. C語言程序求1—100之間的奇數和和偶數和
用oddsum=1+3+5+···+99來計算奇數和;evensum=2+4+6+···+100來計算偶數和。首先設置兩個計數器:oddsum,evensum。其初值為0,利用if···else來判斷奇偶數,來分別累加到計數器。
1,將i的初值置為1;
2,當i增到101時,停止計算。
方法一、
#include <stdio.h>
int main(void)
{ int i = 1, oddsum = 0,evensum = 0; // oddsum奇數和 evensum偶數和
while(i <= 100) // 若i<=100則執行循環體
{ if(i % 2 != 0) // 判斷是不是奇數,是就累加到奇數
oddsum += i;
else // 不是奇數,累加到偶數
evensum += i;
i++; // i的值加1
}
printf("oddsum=%d evensum=%d ",oddsum,evensum);
return 0;
方法二、for語句來實現,效果是一樣的。
#include <stdio.h>
int main(void)
{ int i, oddsum = 0, evensum = 0; // oddsum奇數和 evensum偶數和
for(i = 1; i <= 100; i++) // 若i<=100則執行循環體,i的值加1
{ if(i % 2 != 0) // 判斷是不是奇數,是就累加到奇數
oddsum += i;
else // 不是奇數,累加到偶數
evensum += i;
}
printf("oddsum=%d evensum=%d ", oddsum, evensum);
return 0;
}
用C語言來寫出『輸出1到100中的奇數』代碼。
1、奇數,就是除以2之後有餘數的整數,
代碼:
#include<stdio.h>
int main()
{
int i;
for(i=1;i<=100;i++)
{
if(i%2 != 0)
{
printf("%d ",i);
}
}
return 0;
}
7. 連續奇數相加的公式
這是一個等差數列,首項是1,公差是2,所以他們相加=(1+2n-1)n/2=n^2
8. 100以內的奇數之和,有沒有什麼簡便的演算法
你好
1+3+5+......+99
=(1+99)+(3+97)+......+(49+51)
=100×(1+49)÷2
=100×50÷2
=2500
【數學輔導團】為您解答,如果本題有什麼不明白可以追問,如果滿意記得採納
祝學習進步
9. 一道c語言的題目:計算a、b之間所有奇數的和
一、演算法分析:
要計算a b之間所有奇數和,那麼最樸素的演算法可以設計如下:
1、輸入a,b值;
2、循環遍歷a b之間的所有數值,如果為奇數,則累加;
3、輸出結果。
二、演算法優化:
1、由於連續奇數之間差值為2,所以可以判斷出第一個奇數,然後依次加2得到所有奇數,將所有奇數累加即可。
2、連續奇數屬於等差數列,所以可以利用等差數列求和公式,更快捷的得到結果。
三、參考代碼:
1、原始演算法代碼:
#include<stdio.h>
intadd(inta,intb)
{
intm,n,s=0;
if(a<b)m=a,n=b;
elsem=b,n=a;//判斷ab大小,增加健壯性。
for(;m<=n;m++)
if(m%2==1)s+=m;//判斷並累加奇數。
returns;//返回結果。
}
intmain()
{
inta,b;
scanf("%d%d",&a,&b);//輸入a,b值。
printf("%d ",add(a,b));//計算並輸出結果。
return0;
}
2、優化演算法1:
#include<stdio.h>
intadd(inta,intb)
{
intm,n,s=0;
if(a<b)m=a,n=b;
elsem=b,n=a;//判斷ab大小,增加健壯性。
if(m%2==0)m+=1;//找到第一個奇數。
for(;m<=n;m+=2)//僅遍歷奇數。
s+=m;//累加奇數。
returns;//返回結果。
}
intmain()
{
inta,b;
scanf("%d%d",&a,&b);//輸入a,b值。
printf("%d ",add(a,b));//計算並輸出結果。
return0;
}
3、優化演算法2:
#include<stdio.h>
intadd(inta,intb)
{
intm,n,s=0;
if(a<b)m=a,n=b;
elsem=b,n=a;//判斷ab大小,增加健壯性。
if(m%2==0)m+=1;//找到第一個奇數。
if(n%2==0)n-=1;//找到最後一個奇數。
s=(m+n)*((n-m)/2+1)/2;//根據等差數列求和公式計算和。
returns;//返回結果。
}
intmain()
{
inta,b;
scanf("%d%d",&a,&b);//輸入a,b值。
printf("%d ",add(a,b));//計算並輸出結果。
return0;
}
10. 奇數1到99相加最簡單的方法是什麼
1=1^2
1+3=4=2^2
1+3+5=9=3^2
1+3+5+7=16=4^2
1+3+5+7+9=25=5^2 前n個奇數的和=n^2
奇數1到99 共50個奇數 =50^2=2500