您的位置:首页 > 编程语言 > C语言/C++

c++的字符串拼接、截取;整型转化成字符串

2017-09-23 19:35 281 查看
#include<iostream>

#include<string>     //有string类

#include <sstream>   //有stringstream类

using namespace std;

/**

 * 如果一个数恰好等于它的因子之和,则称该数为“完全数”。

 * 各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和

 * 等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。

 *   例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。

 *   第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

 */

bool ifWholeNumber(int inputNumber);

void ouputExpression(int inputNumber);

string intToString(int number);

int main(){
int s;
cout<<"请输入一个数字:"<<endl;
cin>>s;
ouputExpression(s);
return 0;//1一般是发生异常的返回值

}

//是否是完数

bool ifWholeNumber(int inputNumber){
    bool flag = false;
    int m = 1;  
    for (int i = 2; i <= inputNumber; i++) {
if(inputNumber % i == 0){  //是它的一个因子
if(i != inputNumber){
m = m + i;
}
}
}
   if(m == inputNumber){ //因子和等于输入的数字,是完数
    return true;
   }else{
    return flag;
   }
}

//是完数,输出表达式

void ouputExpression(int inputNumber){
bool flag = ifWholeNumber(inputNumber);
if(flag){
string result = intToString(inputNumber)+"= 1+";
    for (int i = 2; i <= inputNumber; i++) {
if(inputNumber % i == 0){  //是它的一个因子
if(i != inputNumber){
//result = result + i +"+";
result.append(intToString(i));
result.append("+");
}
}
}
cout<<result.substr(0,result.length()-1)<<endl;
}else{
cout<<"输入的数字不是完数"<<endl;
}

}

//int转换成字符串

string intToString(int number){
stringstream ss;
ss<<number;
string s;

     ss>>s;
return s;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: