题解(两个版本)
2026-01-20 13:35:56
发布于:江苏
10阅读
0回复
0点赞
题解1号(长度最短,也可以删掉空格和换行):
#include <bits/stdc++.h>
int main(){
char s[105]={0},a[45]={0};
scanf("%s",s);
for(int i=strlen(s)-1;i>=0;i-=3){
if(s[i-1]<'0'||s[i-1]>'9')s[i-1]='0';
if(s[i-2]<'0'||s[i-2]>'9')s[i-2]='0';
a[(strlen(s)-1-i)/3]=(s[i-2]-'0')*4+(s[i-1]-'0')*2+s[i];
}for(int i=strlen(a)-1;i>=0;i--)printf("%c",a[i]);}
题解2号(内存占用最低):
#include <bits/stdc++.h>
using namespace std;
int main(){
char s[105]={0},a[45]={0};
int p=0;
cin>>s;
for(int i=strlen(s)-1;i>=0;i-=3){
if(s[i-1]<'0'||s[i-1]>'9')s[i-1]='0';
if(s[i-2]<'0'||s[i-2]>'9')s[i-2]='0';
a[p++]=(s[i-2]-'0')*4+(s[i-1]-'0')*2+s[i];}
for(int i=strlen(a)-1;i>=0;i--)cout<<a[i];
}
点个赞吧
这里空空如也







有帮助,赞一个