有点复杂的解
2025-12-24 12:42:54
发布于:香港
20阅读
0回复
0点赞
#include<iostream>
#include<string>
#include<vector> //使用std::vector
#define str std::string //宏定义(str==std::string)
str pal(str s){ //颠倒函数
str s_pal="";
for(int i=s.size();i-->0;)s_pal+=s[i]; //i-->0==(i--)>0
return s_pal;
}
signed main(int argc,char** argv){ //“防伪”
std::vector<str> n_group; //定义std::string的动态数组n_group
str n;
std::cin>>n;
/*颠倒补0再恢复*/
n=pal(n);
for(int i=0;i<n.size()%3;i++)n+="0";
n=pal(n);
/*颠倒补0再恢复*/
str s="";
for(int i=0;i<n.size();i++){ //开始分组
s+=n[i];
if((i+1)%3==0){
n_group.push_back(s);
s="";
}
}
for(int i=0;i<n_group.size();i++){ //输出
std::string g=n_group.at(i);
/*判断*/
if(g=="000")std::cout<<0;
else if(g=="001")std::cout<<1;
else if(g=="010")std::cout<<2;
else if(g=="011")std::cout<<3;
else if(g=="100")std::cout<<4;
else if(g=="101")std::cout<<5;
else if(g=="110")std::cout<<6;
else if(g=="111")std::cout<<7;
else std::cout<<""; //“防伪+1”
}
}
这里空空如也





有帮助,赞一个