Ⅰ c語言程序急用編寫程序.計算m,n之間所有奇數的和
以上幾樓答案也都對,但是不完美。因為他們的代碼復雜度都太高,為o(m-n)量級。其實完全可以做到o(1)的時間完成。代碼如下:
#include <stdio.h>
int main()
{
int m=0;
int n=0;
int t=0;
int count=0;
int sum=0;
printf("input two intergets\n");
scanf("%d %d",&m,&n);
//確保m<=n
if( m>n) {
t=m;
m=n;
n=t;
}
//case 1 : m是奇數,n是偶數,比如m=3,n=6
//演算法描述:
// m到n之間第一個奇數是m
// 最後一個奇數是n-1
// 奇數的個數是count=(n-m+1)/2
// 它們構成一個等比數列
// 所以和=(首項+末項)*項數/2
// 其餘的情況類似。
// 演算法復雜度:O(1)
if( m%2==1 && n%2==0 ){
count=(n-m+1)/2;
sum=(m+n-1)*count/2;
}
//case 2 : m是奇數,n是奇數,比如m=3,n=7
if( m%2==1 && n%2==1 ){
count=(n-1-m+1)/2;
sum=(m+n-1-1)*count/2+n;
}
//case 3 : m是偶數,n是偶數,比如m=2,n=6
if( m%2==0 && n%2==0 ){
m=m+1;
count=(n-m+1)/2;
sum=(m+n-1)*count/2;
}
//case 4 : m是偶數,n是奇數,比如m=2,n=7
if( m%2==0 && n%2==1 ){
m=m+1;
count=(n-1-m+1)/2;
sum=(m+n-1-1)*count/2+n;
}
printf("sum=%d \n",sum);
return 0;
}
一個好的程序寫出來是一回事,演算法是不是最優,效率是不是最高,對內存的使用是不是合理則是更高的要求。
Ⅱ 定義一個整數m,求m以內的奇數之和怎麼用C語言編寫
#include<stdio.h>
intmain()
{
intm,i,sum;
m=100;
sum=0;
for(i=1;i<=m;i++)
{
if(i%2==1)
{
sum+=i;
}
}
printf("%d",sum);
return0;
}
Ⅲ C語言求1-100奇數的個數
#include <stdio.h>
int main(void)
{
int i;
int j = 0;
int am = 0;
for (i = 1; i <= 100; i += 2)
{
j = j + i;
if (i% 2 == 1) //這里是i%2,實際上這個條件沒必要,因為i+=2了,肯定是奇數
++am;
}
printf("請輸出1-100 中所有奇數的和= %d\n", j);
printf("請輸出1-100 中所有奇數的個數= %d\n", am);
return 0;
}
Ⅳ c語言奇數偶數問題
如果想避免重復,在輸出每個case的時候,判斷一下該數是否重復出現過。
for(i=0;i<n;i++)
{
/////////////////////////////////////////////// 在這里添加判斷是否該數是否重復的代碼,如果重復就continue
if( a[i]%2!=0)
{
printf("%d ",a[i]);
printf("%d\n",b[i]+1);
flag=1;
}
}
Ⅳ c語言求m以內的奇數之和代碼
#include<stdio.h>
intmain(){
inti,m,s=0;
scanf("%d",&m);
for(i=1;i<=m;i+=2)
s+=i;
printf("%d",s);
return0;
}
Ⅵ C語言編程 求1到100內奇數數量 。請編個程序
#include<stdio.h>
void main()
{
int i,count;
count=0;
for(i=1;i<=100;i++)
if(i%2==1)count++;
printf("奇數個數 count=%d\n",count);
}
Ⅶ C語言編程:鍵盤輸入正整數m和n(m<n),計算m~n之間所有奇數之和x與偶數之和y,請編程實現。*
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inti,m,n;
longx,y;
printf("inputm:");
scanf("%d",&m);
printf("inputn:");
scanf("%d",&n);
if(n>m)
{
x=0;
y=0;
for(i=m;i<=n;i++)
{
if(i%2==0)
y+=i;
else
x+=i;
}
}
printf("x=%d,y=%d ",x,y);
return0;
}
Ⅷ C語言編寫程序,輸出100以內(含100)所有的奇數以及這些奇數的和
你的太復雜了 簡單如下: main () {int i,j,sum=0; for (i=1;i<100;i=i+2) {printf("%d",i); sum=sum+i;} printf("%d",sum); }