前言
大家好,我是金博欣。今天我为大家分享一下一个C++的小测验,大家学习一下吧!
一、面条切割
1.原题
题目描述
有n根面条。每根面条可以切割开成为若干正整数长度小面条,但不能拼接。现在要从这些面条中切割出长度相同的小面条,每段小面条的长度是len,允许有剩余。请问最多能切出几条小面条?
输入格式
输入文件noodle1.in 输入第一行是正整数n和len,n<=10^5,len<=10^6。第二行是n 个不超过10^6 的正整数,表示每条的长度。
输出格式
输出文件noodle1.out 输出一个整数,代表最多能切出几条小面条。
输入样例#1:
3 2
10 3 3
输出样例#1:
7
输入样例#2:
4 3
6 7 8 9
输出样例#2:
9
2.解析
这一道题很简单,就是每一个绳子除以需要的长度,向下取整即可。我们可以直接用int型来解决问题。
但这样会错一个数据,于是我们只能用long long。
3.AC代码
#include<iostream>//调用输入输出流头文件
#include<cstdio>//调用C语言输入输出头文件
using namespace std;//使用标准名字空间
long long n,len;//定义整数类型变量n,len,面条的数量和需要的长度
long long ans;//定义整数类型变量ans,最多可切的数量
long long noodles[1000009];//定义数组noodles, 包含100009个整数类型变量
int main(){//主函数开始
cin>>n>>len;//输入n,len的值
for(int i=0;i<n;i++){//for循环,计数器i从0自增到n-1,共循环n次
cin>>noodles[i];//输入noodles的i号元素
}
for(int i=0;i<n;i++){//for循环,计数器i从0自增到n-1,共循环n次
ans+=noodles[i]/len;//ans自增noodles的i号元素除以len
}
cout<<ans;//输出ans的值
return 0;//主函数结束,返回0
}
二、素数个数
1.原题
题目描述
判断101-200之间有多少个素数,并输出所有素数。
输入格式
无
输出格式
第一行输出为:若干个素数,每两个数字间用空格隔开