s=1+4+7+10+·+301的值
今天下午要交,希望大家多多关注,多多回答,谢谢各位
循环
#include<stdio.h>
int main() {
int sum = 0,i;
for(i = 1 ; i <= 301; i+=3) {
sum += i;
}
printf("%d\n",sum);
}
数学等差求和
#include<stdio.h>
int main() {
printf("%d\n",302*101/2);
}
#include <stdio.h>
int main(void)
{
int i,res=0;
for (i = 1;i <= 301; i+=3)
res+= i;
printf("res= %d",res);
return ;
}
供参考:
#include <stdio.h>
int main()
{
int i,s=0;
for (i = 1;i <= 301; i+=3)
s += i;
printf("s = %d",s);
return 0;
}
#include <stdio.h>
int main()
{
int ans = 0;
for (int i = 1; i <= 301; i += 3) {
ans += i;
}
printf("%d\n", ans);
}
此题目为 C 语言实现等差数列求和,分析题目可得,首项 a1 = 1, 末项 an = 301, 公差 d = 3
解法1:暴力求解
#include <stdio.h>
int main()
{
const int a1 = 1, an = 301, d = 3;
int s = 0;
for (int ai = a1; ai <= an; ai += d) {
s += ai;
}
printf("%d\n", s);
}
解法2 :求和公式求解
#include <stdio.h>
int main()
{
const int a1 = 1, an = 301, d = 3;
const int n = (an - a1) / d + 1; // 计算等差数列的项数
int s = (a1 + an) / 2 * n; // 使用求和公式求解
printf("%d", s);
}
编译运行(使用 gcc):
PS D:\晓城\Source\csdn> gcc .\main.c
PS D:\晓城\Source\csdn> .\a.exe
15251
#include<stdio.h>
int main()
{
int sum = 0;
for(int i = 1 ; i <= 301; i+=3)
{
sum += i;
}
printf("%d\n",sum);
return 0;
}
#include<stdio.h>
int main() {
int i,s=0;
for(i=1;i<=301;i+=3) {
s+= i;
}
printf("%d",s);
}
#include<studio.h>
int main(void){
int plus=0;
for(int i=1;i<=301;i++){plus+=i;}
printf("plus=%d\n",plus);
return 0;
}
还是要先分析题目,理清思路,用for 循环或者while循环等都是可以的
也可以用等差数列的公式求,但是肯定没这直接算简单
使用递归算法求和
这还写啥,等差数列求和公式,s=(1+301)*(((301-1)/3)+1)/2,直接printf s就好了