HLOJ 2018 某校几人

某学校教职工人数不足n人,在操场排队,7个一排剩5人,5个一排剩3人,3个一排剩2人;请问该校人数有多少种可能?最多可能有几人?

输入格式:

测试数据有多组,处理到文件尾。每组测试输入一个整数n(1≤n≤10000)。

输出格式:

对于每组测试,输出一行,包含2个以一个空格间隔的整数,分别表示该校教职工人数的可能种数和最多可能的人数。

输入样例:

1000

输出样例:

9 908

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

思路分析:

本题主要考查选择语句和动态数组的引用,

通过数组的下标统计次数,是因为每当i符合条件,下标cnt++。同时把i赋给数组的子项。

注意:先cnt++,再赋值,因为要最大值,即需要输出a[cnt],如果先赋值,再cnt++,

就会导致a[cnt]其实是最大值所在子项的后一项。即输出的是a[cnt++]。

由于到n之前就截至了,所以a[cnt]为最大值,后面子项未赋值,值为0。

代码实现:

#include<iostream>
using namespace std;
int main(){
	int n;
	int a[100];
	while(cin>>n){
		int cnt=0;
	for(int i=12;i<n;i++){
		if(i%7==5&&i%5==3&&i%3==2){
		   	cnt++;
			a[cnt]=i;
		
		}
	}
	cout<<cnt<<" "<<a[cnt]<<endl;
	}
	return 0;
} /*先cnt++,再赋值,因为要最大值,即需要输出a[cnt],如果先赋值,再cnt++,
就会导致a[cnt]其实是最大值所在子项的后一项。即输出的是a[cnt++]。
由于到n之前就截至了,所以a[cnt]为最大值,后面子项未赋值,值为0。*/ 

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值