描述
计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。
输入
两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。
输出
输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和
这里我提供两种做法
第一种是正常的循环做法,第二种是偷鸡做法
#include<stdio.h>
int main(){
int m,n;
scanf("%d %d",&m,&n);
int sum=0;
for(m;m<=n;m++){ //从m开始,n结束(m自增)
if(m%2!=0) //如果m为奇数,则加入进sum里
sum+=m;
}
printf("%d",sum);
return 0;
}
第二种则是偷鸡做法(没有用循环的方法)
#include<stdio.h>
int main(){
int a,b,c,d;
scanf("%d %d",&a,&b);
if(a%2==0) //判断输入的a为奇数或偶数
a=a+1;
else
a=a;
if(b%2==0) //判断输入的b为奇数或偶数
b=b-1;
else
b=b;
c=(b-a)/2+1; //运求出输入两个数范围中最大的奇数和最小的奇数,然后用数学方式进行计算(不推荐)
d=((a+b)*c)/2;
printf("%d",d);
return 0;
}