输入整型,“,”隔开,默认输入6个整型数
如1,2,3,4,5,6 求出二十四小时时间制最大, 输出 23:56:41 如果超出显示invalid
看看有啥问题?
#include <iostream> #include <vector> #include <string> int main() { std::vector<int> vec; char c; while((c = getchar())!= '\n') { if(c != ',') { int tmp; ungetc(c, stdin); std::cin>>tmp; vec.emplace_back(tmp); } } std::vector<int> t; auto for_fu = [&](int i)->bool{ for(auto itr = vec.begin(); itr != vec.end(); itr++) { if(*itr == i) { t.emplace_back(i) ; vec.erase(itr); return true; } } return false; }; auto fun = [&](int number)->bool{ for(int i = number; i >= 0; i--) { if(for_fu(i)) return true; } return false; }; int ck[5] = {3,5,9,5,9}; auto ckfun = [&]()->bool{ for(auto m = 0; m < 5; m++) { if(!fun(ck[m])) { std::cout<<"invalid"<<std::endl; return false; } } return true; }; if(!fun(2)) { std::cout<<"invalid"<<std::endl; return 1; } else { if(t[0] == 2) { if(!ckfun()) { return 1; } } else { ck[0] = 9; if(!ckfun()) { return 1; } } } std::string str; str = std::to_string(t[0]) + std::to_string(t[1]) + ":" + \ std::to_string(t[2]) + std::to_string(t[3]) + ":" +\ std::to_string(t[4]) + std::to_string(t[5]); std::cout<<str<<std::endl; return 0; }
全部评论
(0) 回帖