本文主要是介绍累加器、累乘器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
3
4
5
6
7
输出样例:
2
#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;
}
这篇关于累加器、累乘器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!