上海交通大学2016年6月CS保研机试题

题2:addictive string

判断一个字符串是否是加和字串。

如12358,10099199都是加和字串。

它们可看做1,2,3,5,8:1+2=3;2+3=5;3+5=8

输入:

输入的数可能很大,注意要处理很大的数。

每一个数不以0开头。

如12358

输出:

若这个输入不是加和字串,输出

0

Not Found

若是加和字串,输出

1

1+2=3;2+3=5;3+5=8


解法:遍历获得前两个数,再利用斐波那契数列求得一个与输入长度相当的字串,判断这两个字符串是否是一样的。

先实现数字字符串的相加方法:"123"+"213"="336"

再实现基于每组的前两个数,生成结果字串的方法。如利用1,2,生成长度为5的结果字串12358


代码:

#include 
#include 
using namespace std;
string add(string str1,string str2){
    int len1,len2;
    int i=0;
    int jinwei=0;
    string re,strr1,strr2;
    if (str1.length()>=str2.length()){
        len1=str1.length();
        len2=str2.length();
        strr1=str1;
        strr2=str2;
        re=str1;
    }
    else {
        len1=str2.length();
        len2=str1.length();
        strr1=str2;
        strr2=str1;
        re=str2;
    }
    int temp=0;
    //cout<<"in fun re:"<=0;i--){
        //cout<<"i:"<=10) jinwei=1;
        else jinwei=0;
        //cout<<"temp"<>str;
    int i,j,k;
    string r[10000];
    cout<             cout<


  cout< } } else { cout<<"0"<
我知道我这写的挺垃圾的,在当时做时也没有调试出来,希望有好的想法,如何写的块,可以相互交流。

你可能感兴趣的:(考研,保研)