C语音,求整数1-100的累加值,但要求跳过所有个位为3的数,用FOR循环语句实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语音,求整数1-100的累加值,但要求跳过所有个位为3的数,用FOR循环语句实现相关的知识,希望对你有一定的参考价值。

#include<stdio.h>int main()

int i;
int sum = 0;
for(i = 0;i <= 100;i++) //从1循环至100

if(i%10 == 3) //如果i除以10的余数为3,也就是个位数为3
continue; //继续下个循环,后面代码不执行,不能用break,否则此循环遇到个位数为3就不再执行
else //如果个位数不为3
sum += i; //把i的值加进sum里

printf("%d\n",sum);
return 0;
参考技术A 楼上的我想问,知道break表示什么??要是这样你后面就不会执行。 把break改成continue就可以搞定: #include<stdio.h>
void main()

int i,sum;
sum=0;
for(i=1;i<=100;i++)
if(i%10==3) continue;
sum=sum+i;
printf("%d ",i);

printf("%d ",sum);
参考技术B #include<cstdio>
void main(void)

int result=0;
for(int i=1;i<=100;i++)

if(i%10==3) //余数为3,不执行累加
continue;
else
result+=i;

printf("结果为:%d\n",result);

不懂再问哈
参考技术C 核心代码如下!for(i=1;i<=100;i++)if(k%10==3) break;else sum+=i; 参考技术D int num=0
for(int i=1;i<=100;i++)

num +=i
println("累加="num);

未排序数组中累加和为给定值的最长子数组长度

未排序数组中累加和为给定值的最长子数组长度

描述

给定一个无序数组arr, 其中元素可正、可负、可0。给定一个整数k,求arr所有子数组中累加和为k的最长子数组长度

输入描述:

第一行两个整数N, k。N表示数组长度,k的定义已在题目描述中给出
第二行N个整数表示数组内的数

输出描述:

输出一个整数表示答案

示例1

输入:

5 0
1 -2 1 1 1

输出:

3
#include<iostream>
#include<unordered_map>
using namespace std;

int getSubArray(int array[], int n, int k)
{
    //key:和  value:当前位置索引
    unordered_map<int, int> sum_index_map;
    sum_index_map[0] = -1;                 //sum与k相等时,长度为索引差+1,所以初始value为-1
    int sum = 0;
    int maxLength = 0;
    for(int i=0; i<n; ++i)
    {
        sum+=array[i];
        int diff = sum - k;     
        if(sum_index_map.find(diff)!=sum_index_map.end())//这里sum-k其实也是和,若sum与k的差在表里存在,即可以减去之前的得到该和(差值)达到目标
        {
            int index = sum_index_map[diff];
            maxLength = max(i-index,maxLength);//此时长度为当前索引位置减去之前和(差值)的索引位置
        }
        if(sum_index_map.find(sum)==sum_index_map.end()) //每次将表中没有存的和存入
        {
            sum_index_map[sum] = i;
        }
    }
    return maxLength;
}

int main()
{
    int n,k;
    cin>>n>>k;
    int array[n];
    for(int i=0; i<n; ++i)
    {
        cin>>array[i];
    }
    int res = getSubArray(array, n, k);
    cout<<res;
}

以上是关于C语音,求整数1-100的累加值,但要求跳过所有个位为3的数,用FOR循环语句实现的主要内容,如果未能解决你的问题,请参考以下文章

未排序数组中累加和小于或等于给定值的最长子数组长度

求一个整数数组中最大子数组的和

未排序数组中累加和为给定值的最长子数组长度

C语言求助,《求m和n之间的所有素数》

课堂练习----一个整数数组中最大子数组的和

编程求1-100之间(包含100)所有偶数的和!