用最基础的c语言,没有学指针

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循环等都是可以的

img

也可以用等差数列的公式求,但是肯定没这直接算简单

使用递归算法求和

这还写啥,等差数列求和公式,s=(1+301)*(((301-1)/3)+1)/2,直接printf s就好了