算法打卡day8 2023.1.15
题目描述
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(每个字符串长度小于等于100)
输出描述:
依次输出所有分割后的长度为8的新字符串
示例1
输入:abc
输出:abc00000
思路
先输入字符串,如果长度大于8,输出前八个字符,然后删除这八个字符,如果长度小于八,输出字符串,且输出0补齐8位,删除字符后的字符串作为新的参数调用函数
具体实现
#include<iostream>
#include<string>
using namespace std;
void f(string s){
if(s.length()<=8){
int j=8-s.length();
for(int i=0;i<j;i++){
s+='0';
}
cout<<s<<endl;
}
else{
string s1(s,0,8);
cout<<s1<<endl;
s.erase(0,8);
f(s);
}
}
int main(){
string str;
while(cin>>str){
f(str);
}
return 0;
}
时间复杂度
O(n^2)
小结
需要多次调用函数,时间复杂度略为复杂