我是靠谱客的博主 精明抽屉,最近开发中收集的这篇文章主要介绍小孩的游戏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*
★实验任务
一群子在玩,规则是这样子,给了一些卡片,上面有数字,
现在要把卡片按照某一种序列排好,让这些数字重新链接组合成一个大数,
求最大数是什么。

★数据输入
第一行一个整数 N
接下来N行,每行一个整数ai,为第 i 张卡片上数值。(0<=ai<=100)

★数据输出
输出重新组合好大数。
输入示例 输出示例
3 999923
99
23
99
*/

#include <iostream>
using namespace std;
int main()
{
int n,t,i,j;
int a[101]={0};//本题中卡片的值最大为100,所以开设101个数组 
cin >> n;
for(i=0;i<n;i++)
{
cin >> t;//输入卡片的值 
a[t]++; //将下标为该值的数组加一 
}
for(i=9;i>=1;i--)//进行比较 
{
if(a[i]>0)//先从一位数开始 
{
for(j=9;j>i;j--)
{
//例如 i=7,判断是否有77,78,79这些数
//如果有,则输出,否则就输出若干个7 
while(a[i*10+j]!=0)
{
cout << i*10+j ;
a[i*10+j]--;
}
}
while(a[i]!=0)
{
cout << i ;
a[i]--;
}
//当前面的输出完以后,再输出76,75。。。70这些数 
for(j=i;j>=0;j--)
{
while(a[i*10+j]!=0)
{
cout << i*10+j ;
a[i*10+j]--;
}
}
}
else//如果没有一位数的情况 
{//直接按顺序输出 
for(j=9;j>=0;j--)
{
while(a[i*10+j]!=0)
{
cout << i*10+j ;
a[i*10+j]--;
}
}
}
}
while(a[100]!=0)//单独考虑100 
{
cout << 100;
a[100]--;
}
while(a[0]!=0)//单独考虑0 
{
cout << 0;
a[0]--;
}
return 0;
}

最后

以上就是精明抽屉为你收集整理的小孩的游戏的全部内容,希望文章能够帮你解决小孩的游戏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部