2月6日PAT 乙级刷题笔记

本文展示了两段C++代码,分别用于对输入数字进行按余数分类和判断指定范围内的素数。第一段代码利用while循环读取输入,将数字按余数分为五组并进行特定计算。第二段代码实现从第m个到第n个素数的输出,每十个素数换一行,跳过每批的第一个素数。
摘要由CSDN通过智能技术生成
1012 数字分类 (20 分)

在这里插入图片描述

分析:

  emmmm好像也没啥好说的,但是这个while(cin)的用法还是有点奇怪,自己编译器过不了,oj上却过了

代码:
#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
int main()
{
	vector<int> A1,A2,A3,A4,A5;
	int a;
	int count;
	cin>>count;
	while(cin>>a)
	{
		if(a%5==0)
			A1.push_back(a);
		else if(a%5==1)
			A2.push_back(a);
		else if(a%5==2)
			A3.push_back(a);
		else if(a%5==3)
			A4.push_back(a);
		else if(a%5==4)
			A5.push_back(a);
	}
	if(A1.size()==0||A1.size()==1)
		cout<<"N ";
	else
	{
		int sum1=0;
		for(int i=0;i<A1.size();i++)
		{
			if(A1[i]%2==0)
				sum1+=A1[i];
		 } 
		cout<<sum1<<' ';
	}
	if(A2.size()==0)
		cout<<"N ";
	else
	{
		int sum2=0;
		bool flag2=true;
		for(int i=0;i<A2.size();i++)
		{
			if(flag2)
			{
				sum2+=A2[i];
				flag2=false; 
			}
			else 
			{
				sum2-=A2[i];
				flag2=true;
			}
		}
		cout<<sum2<<" ";
	}
	int counts3=0;
	if(A3.size()==0)
		cout<<"N ";
	else
		cout<<A3.size()<<" ";
	if(A4.size()==0)
		cout<<"N ";
	else
	{
		double sum4=0;
		for(int i=0;i<A4.size();i++)
			sum4+=A4[i];
		printf("%.1lf ",sum4/A4.size());
	 } 
	if(A5.size()==0)
		cout<<"N";
	else
	{
		int max=A5[0];
		for(int i=1;i<A5.size();i++)
		{
			if(A5[i]>max)
				max=A5[i];
		}
		cout<<max; 
	}
	
} 
1013 数素数

在这里插入图片描述

分析:

  是第m个素数到第n个素数,不是m到n中的素数。每十个一个换行,每一批的第一个不输出空格。

代码:
#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
bool isprime(int n)
{
	bool flag=true;
	for(int i=2;i<=sqrt(n);i++)
	{
		if(n%i==0)
		{
			flag=false;
			break;
		}
	}
	return flag;
}
int main()
{
	int m,n;
	cin>>m>>n;
	for(int i=2,counts=0;counts<n;i++)
	{
		if(isprime(i))
		{
			counts++;
			if(counts>=m)
			{
				if((counts-m+1)%10!=1)
					cout<<" ";
				cout<<i; 
				if((counts-m+1)%10==0)
					cout<<endl;
			}
			
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值