ccf C++ 201712-1最小值差 201712-2 游戏

  • 201712-1最小值差

  • AC代码
#include <bits/stdc++.h>
using namespace std;
int main()
{	
	int n;
	cin>>n;
	int min=10002;
	int a[1005];
	for(int i=0;i<n;i++)
		cin>>a[i];
	sort(a,a+n);
	for(int i=0;i<n-1;i++)
	{
		int temp=0;
		temp=a[i+1]-a[i];
		if(min>temp)
			min=temp;
	}
	cout<<min;	
	return 0;
 } 
  • 201712-2 游戏 

  • 思路:用数组存储所有人一开始状态信息(未淘汰时)。如果当前数i满足 i%k=0  或者i%10=k,就标注为0他被淘汰,直到淘汰的人数为n-1的时候,剩余的1个人就是胜利者。然后找到这个人的下标输出。
  • ac代码
  • #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
    	int n;
    	int k;
    	int j=1;
    	int sum=0;
    	int a[1005];
    	memset(a,0,sizeof(a));
    	cin>>n>>k;
    	if(k==1||n==1)
    		cout<<n;
    	else{			
    		
    		for(int i=1;i<=n;i++)
    			a[i]=i;		
    		while(sum<n-1)
    		{
    			int i=1;
    			for(;i<=n;i++)
    			{
    				if(a[i]!=0)
    				{
    					if(j%k==0||j%10==k)
    					{
    						a[i]=0;
    						++sum;
    					}
    					j++;
    				}
    			}
    		}
    		sort(a,a+n+1);
    		cout<<a[n];
    	}
    	return 0;
    } 
    

     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值