c++的问题-PAT(basic level)1023题组个最小数求找错误

问题描述

PAT(basic level)1023题组个最小数求找错误

题目如下:
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。

现给定数字,请编写程序输出能够组成的最小的数。

输入格式:

每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。

输出格式:

在一行中输出能够组成的最小的数。

输入样例:
2 2 0 0 0 3 0 0 1 0
输出样例:
10015558
我的代码如下:
#include
#include
#include
#include
#include
#include

using namespace std;

bool big(const int &i){
return i>0;
}

int main(void){
string s;
getline(cin,s);
vector v;
int count = 0;
for(int st = 0;st!=s.length();++st){
if(isdigit(s[st])){
for(int j=1;j<=s[st]-'0';++j)
v.push_back(count);
++count;
}
}
vector::iterator it = find_if(v.begin(),v.end(),big);
if(it!=v.end()){
cout<<*it;
v.erase(it);
for(it = v.begin();it!=v.end();++it)
cout<<*it;
cout<<endl;
}
return 0;
}
提交测试的时候有两个点过不了,求大神指导

解决方案

这个就是数组的排列吧,怎么感觉你写得那么复杂呢

时间: 2024-11-03 08:08:35

c++的问题-PAT(basic level)1023题组个最小数求找错误的相关文章

c++-C++ PAT数据结构基础02-1题 反转单链表

问题描述 C++ PAT数据结构基础02-1题 反转单链表 题目大意:反转单链表,给定常数K和单链表L,要求按每K个节点反转单链表,如:L: 1->2->3->4->5->6 K=3,输出:3->2->1->6->5->4,如果K=4,输出:4->3->2->1->5->6. 输入说明:每次输入一个案例,对每个案例,第一行内容是链表第一个节点的地址,节点数N(N<=100,000)(不一定是最终形成的单链表的节

字符-一道acm水题 all in all 一直找不出错误 求大神解答

问题描述 一道acm水题 all in all 一直找不出错误 求大神解答 描述字符串s和t均由字母组成,若在t中除去一些字母能够得到s,我们就说s是t的一个子串.比如abc就是acbefc的子串(acbefc去掉第二.第四.第五个字符后就得到abc)输入有若干组输入数据,每组一行,分别为字符串s和t,s与t之间用空格隔开输出对于一组s与t,若s是t的子串,则输出Yes,否则输出No 样例输入sequence subsequence abc acb VERDI vivaVittorioEmanu

c++-一个acm题中出现的迭代器相关错误求解

问题描述 一个acm题中出现的迭代器相关错误求解 #include #include #include using namespace std; int main() { int n,a,b; int count1 = 0,count2 = 0; map p; vector xm; vector xy; while(scanf("%d",&n) != EOF) { for(int i = 0;i < n;++i) { scanf("%d%d",&

vc++-这题咋破,求大神帮帮忙啊

问题描述 这题咋破,求大神帮帮忙啊 C++编程,求两坐标点的距离 解决方案 缺少缺省构造函数.要么加个缺省构造函数.要么注释掉第十六行的Location l1l2; 解决方案二: 看一下,大神输出出问题了 解决方案三: 第二行,nath.h是什么鬼?

c++acm问题-c++题的一道题求两1000位数以内的和

问题描述 c++题的一道题求两1000位数以内的和 不知道为什么AC不了 ![CSDN移动问答][1] [1]: http://acm.hdu.edu.cn/showproblem.php?pid=1002 这是问题要求 这是我的代码 用的是vs2012#include using namespace std; int main( ){ int t; cin>>t; for (int i=1;i<=t;i++) { char a[1001]b[1001]c[1003]; cin>&

计算机二级-六题怎么做,求大神帮忙

问题描述 六题怎么做,求大神帮忙 选D求解答计算机二级-六题怎么做,求大神帮忙-求ps大神帮忙p图"> 解决方案 把省略的大括号补回去,可以比较清楚地看见原因 原代码: for( i=0; i<4; i++, i++) for(k=1; k<3; k++); printf("*"); 补回缺省的大括号: for( i=0; i<4; i++, i++){ for(k=1; k<3; k++){ ; } } printf("*"

vc++-C语言结构数组的题,请大神看看错误出在哪里

问题描述 C语言结构数组的题,请大神看看错误出在哪里 #include struct sell { char dm[4]; char mc[10]; int dj; int sl; long int je; }sell[100]; void main() { int i,j,t; long int m; for(i=0;i scanf("%s,%s,%4d,%5d,%5dn",&sell[i]dm,&sell[i].mc,&sell[i].dj,&sel

PAT Basic 1069. 微博转发抽奖(20)

小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N和S,分别是转发的总量.小明决定的中奖间隔.以及第一位中奖者的序号(编号从1开始).随后M行,顺序给出转发微博的网友的昵称(不超过20个字符.不包含空格回车的非空字符串). 注意:可能有人转发多次,但不能中奖多次.所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位. 输出格式: 按照输入的顺序

PAT Basic 1073. 多选题常见计分法

题目内容 多选题常见计分法(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数:如果考生选择了任何一个错误的选项,则不能得分.本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多. 输入格式: 输入在第一行给出两个正整数N(<=1000)和M