当前位置:首页 » 编程语言 » c语言中m以内的奇数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中m以内的奇数

发布时间: 2022-08-05 03:42:22

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); }