输入一个字符串,请按长度为8拆分每个输入字符串并进行输出

171 阅读1分钟

算法打卡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)  

 

 

小结

需要多次调用函数,时间复杂度略为复杂