累加器、累乘器

for 语句是C++编程语言中使用最为灵活的语向,常常应用于已给定变量初值、步长,以及一些有循环条件等的循环结构,它可以帮我们解决求和、求积、找最大数最小数以及统计个数等很多很多问题。

一:求和:

计算1+2+3+4+5+....+100的和

分析:

第几项(i)

1

2

3

4

和(s)

1

3

6

10

规律

s=s+2

s=s+3

s=s+4

从第二项到第i项的规律:s=s+i;

那么第一项的规律是什么,如何“化异为同”?

在加第一项之前,将s的值赋为0;

第几项(i)

1

2

3

4

和(s)

1

3

6

10

规律

s=s+1

s=s+2

s=s+3

s=s+4

代码如何实现?

分析:

1.用变量s存放和,对变量s清零;

2. 用i表示1至100 的自然数,用循环列出;

3. 将这些自然数用式子s=s+i逐一累加到s中去;

4. 循环结束后,s即为1~100 的自然数的和,输出即可。

代码:

#include<iostream>

using namespace std;

int main()

{

    int i,s,n;

    s=0;

//注意:这里的变量在使用前一定要初始化,不然系统会随机赋值

    cin>>n;

    for( int i=1; i<=n; i++)

    {

        s=s+i;

    }

    cout<<s;

    return 0;

}

思考:求a-b内自然数之和,程序该如何实现?

输入格式:一行,2个整数a,b;

输出格式:一个整数表示和

小结:

 对于类似数列的题目,我们可以通过列表来找规律,一般情况下,解决这类问题我们可以通过for来模拟过程。

课后作业3 查看测评数据信息

【问题描述】

超市自动计费器主要功能是统计出顾客选购的商品的总价值。你能帮忙设计一个这样的计费系统吗?

【输人格式】

第一行:仅一个整数n,表示顾客选购的商品数;

第二行:有n个整数,表示每件商品的价格。

【输出格式】

输出顾客的消费额。

【输人样例】

5

25 100 63 84 12

【输出样例】

284

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a,s;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a;
        s=s+a;
    }
    cout<<s;
    return 0;
}

长度 查看测评数据信息

学校体艺节有一种新形式的马拉松比赛:运动员需要用N分钟的时间跑,看谁跑的最远。晨晨报名参加了这个比赛,已知她每分钟的速度是v1,v2,…,vn,问晨晨总共跑了多长的距离?

输入格式

第一行:1个正整数N,表示晨晨要跑N分钟。 N的范围为[1, 100]。

第二行:N个整数,表示晨晨每分钟跑步的速度。每个数的范围为[1, 500]。

输出格式

一个整数,N分钟晨晨总共跑的距离。

输入/输出例子1

输入:

3  

2  5  3

输出:

10

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a,s=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a;
        s=s+a; 
    }
    cout<<s;
    
    return 0;
}

偶数之和 查看测评数据信息

晨晨最近对偶数比较感兴趣,现在晨晨面前有一堆整数,请你帮她统计这一堆数据里面偶数的和是多少。

输入格式

第一行:一个整数 n,表示有多少个数据。(n<=100)

第二行:n 个整数。(每个整数小于等于 1000)

输出格式

一行:一个整数代表这一堆数据里面偶数的和。

输入/输出例子1

输入:

6

48 50 51 49 50 52

输出:

200

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a,s;
    s=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a;
        if(a%2==0)s=s+a;
    }
    cout<<s;
    return 0;
}

连续数字之和 查看测评数据信息

晨晨最近对连续一段数字之和很感兴趣,她很想编一道程序,只要输入开始数字s和结束数字e,立刻就能算出这段数据的和,如输入1和5,那么计算机计算1+2+3+4+5=15,输出15,你能帮她实现吗

输入格式

一行,两个整数s和e,分别代表开始和结束数字(0≤s≤e≤100

输出格式

一行,一个整数,代表这段连续数字之和。

输入/输出例子1

输入:

1 5

输出:

15

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,s;
    s=0;
    cin>>a>>b;
    for(int i=a;i<=b;i++)s=s+i;
    cout<<s;
    return 0;
}

例题2 查看测评数据信息

题目描述

输入 n 个整数,求它们之中所有数的积。

输入格式

 第一行1个整数n,范围在[1,9]。
 第二行有n个[1,100]范围的整数,整数间用一个空格分隔。

输出格式

 只一个整数,它们的积。

(注意数据范围)

#include<bits/stdc++.h>
using namespace std;
long long n,a,s;
int main(){  
    s=1;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a;
        s=s*a;
    }
    cout<<s;
    return 0;
}

课堂练习1 查看测评数据信息

题目描述

累乘a-b中所有的偶数

输入格式:

一行两个整数a,b(1,30)

输出格式

一个整数。

输入样例

5 10

输出样例

480

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long b,a,s;
    s=1;
    cin>>a>>b;
    for(int i=a;i<=b;i++)if(i%2==0)s=s*i;
    cout<<s;
    return 0;
}

课堂练习4 查看测评数据信息

【问题描述】

为了在学校的体艺节中体现不同的精神面貌,四年级快定统一订制级服,给出每件级服的价钱及四年级各班的人数,求全级订制级服所需要的总价钱。

【输人格式】

第一行:

一个整数x (x≤100),表示每件级服的价钱;

第二行:

一个整数n(n≤10),表示四年级的班别数;

第三行:n个整数,表示四年级各班的人数。(各班人数在60人以内)

【输出格式】

1行:

一个整数代表全级订制级服所需要的总价钱。

【输人样例】

30

6

48 50 51 49 50 52

【输出样例】

9000

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x,a,s=0;
    cin>>x>>n;
    for(int i=1;i<=n;i++){
    cin>>a;
        s=s+a*x;
    }
    cout<<s;
    return 0;
}

课堂练习2 查看测评数据信息

求2*12*22*32+……的值。 
输入n(n<=99) 
输出n以内符合上述数字特征的积。 
输入样例 : 
40 
输出样例: 
16896

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,s=1;
    cin>>n;
    for(int i=2;i<=n;i=i+10){
    s=s*i;    
    }
    cout<<s;
    return 0;
}

例题5 查看测评数据信息

小红最近学了正整数和负整数,现在有一组整数,她想算出这组整数有多少个正整数,多少个负整数,以及正整数的和是多少,负整数的和又是多少?

输入格式

第一行:一个正整数n (0<n≤100),代表有n个整数;

第二行:n个空格分开的整数(整数小于等于 1000)

输出格式

第一行:两个整数,代表正整数的个数和正整数的和(如果没有正数就输出 00);

第二行:两个整数,代表负整数的个数和负整数的和(如果没有负数就输出 。

输入/输出例子1

输入:

5

8

-5

4

-1

-7

输出:

2 12

3 -13

#include<bits/stdc++.h>
using namespace std;
long long n,a,s1=0,s2=0,a1=0,a2=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
    cin>>a;
        if(a>0){
            s1++;
            a1=a1+a;
        }
        if(a<0){
            s2++;
            a2=a2+(a);
        }
        
    }
    if(s1>0)cout<<s1<<" "<<a1<<endl;
    else cout<<" 00";
    if(s2>0)cout<<s2<<" "<<a2<<endl;
    else cout<<" 。";
    return 0;
}

课后练习1 查看测评数据信息

问题描述: 
晨晨认为每一天都有一个幸运数字,而且她每天的幸运数字都是不同的,幸运数字产生有如下规律:第一天为1,第二天就是第一天数字的2倍,第三天的数字为第二天的3倍,以此类推,求第n天幸运数是什么? 
输入格式: 
一行一个整数n(1<=n<=20),代表第n天。 
输出格式: 
一行一个整数,代表第n天的幸运数。

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,s=1;
    cin>>n;
    for(int i=1;i<=n;i++){
    s=s*i;    
    }
    cout<<s;
    return 0;
}

课后作业1 查看测评数据信息

题目描述

火柴盒长为L,宽为W(1<=L,W<=100),高度有一层楼这么高,给你N(1<=N<=50)根火柴,知道每一根火柴的长度,并且火柴只能横放或竖放,问有多少根火柴可以放进该火柴盒。 

输入格式: 

第一行输入N,L和W。 

接下来N行每行输入一个1到1000范围内的一个整数,表示火柴的长度。 

输出格式: 

输出能够装进火柴盒的火柴的数量。 

输入样例 : 

5 3 4 

输出样例: 

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x,y,a,s;
    cin>>n>>x>>y;
    for(int i=1;i<=n;i++){
     cin>>a;
    if(a<=x)s++;
    else if(a<=y)s++;
    }
   cout<<s;
    
    return 0;
}
  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值