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