求整除37的所有自然数之和

问题遇到的现象和发生背景

题目描述:
输入一个整数 n,输出小于 n 并且能被 37 整除的所有自然数之和。
没有则输出 0。

遇到的现象和发生背景,请写出第一个错误信息

第一个问题是为啥num和plus不初始化为0,结果就会大1,比如应该是111,输出确实112

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
 #include
int main()
{
 int i,num=0,plus=0;
 scanf("%d",&num);
 for(i=0;num>=37;i++)
 {
     num-=37;
     plus+=37+i*37;
 }
 printf("%d",plus);
}

运行结果及详细报错内容

输入999时,实际输出为13986,预期输出为12987

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

先把设的num和plus初始化为0了,然后按着步骤来比如输入38,输出37是对的,输入75,输出111也是对的,但是到了999就不对了

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

小于 n 并且能被 37 整除的所有自然数之和
你为什么非要写个等号

为啥num和plus不初始化为0,因为你要是用 num跟plus分别来保存计算之后的下一个值和最终的和,你要是初始化之后怎么知道下一个值是多少呢
输出小于 n并且能被 37 整除的所有自然数之和,那就加个判断num>0再累加

 #include<stdio.h>
int main()
{
 int i,num=0,plus=0;
 scanf("%d",&num);
 for(i=0;num>=37;i++)
 {
     num-=37;
     if(num>0){
      plus+=37+i*37;
     }
    
 }
 printf("%d",plus);
}
 


#include<stdio.h>
int main()
{
 int i,num=0,plus=0;
 scanf("%d",&num);
 
 for(i=0;i<num;i++){
     if(i%37==0){
         plus+=i; 
     }
 } 
 
 printf("%d",plus);
}
 

img

供参考:

#include<stdio.h>
int main()
{
    int i, num = 0, plus = 0;
    scanf("%d", &num);
    for (i = 1; i < num; i++) //for (i = 0; num >= 37; i++)
    {
        if (i % 37 == 0)
            plus += i;  
    }
    printf("%d", plus);
    return 0;
}




#include<stdio.h>
int main()
{
    int i, num = 0, plus = 0;
    scanf("%d", &num);
    for (i = 0; num > 37; i++) //for (i = 0; num >= 37; i++)
    {
        num -= 37;
        plus += 37 + i * 37;
    }
    printf("%d", plus);
    return 0;
}