NI笔试——大数加法

NI笔试:

1.找出字符串第一次出现的字符。用数组建立哈希表,然后再扫描字符串并判断次数是否为1。

2.大数加法,即字符串加法。因为之前写过乘法,就以为是乘法。然后就把乘法写上去了····= = 

好了,看一下加法的思路。

要不要太简单,用俩数组,先把字符串每个位转换成数字存到这俩数组里,然后对每一位进行加和。

代码是拿别人的。= = 

void Add(char s1[],char s2[]) //需要两个字符串参数&&无返回值
 {
     int num1[M],nm2[M];
     int i,j;
     len1=strlen(s1);
     len2=strlen(s2);
     for(i=len1-1,j=0;i>=0;i--)//num[0]保存的是低位
             num1[j++]=s1[i]-'0';
     for(i=len2-1,j=0;i>=0;i--)
             num2[j++]=s2[i]-'0';
     for(i=0;i<M;i++)
     {
         num1[i]+=num2[i];
         if(num1[i]>9)
         {
             num1[i]-=10;
             num1[i+1]++;
         }
     }
    
  for(i=M;(i>=0)&&(num1[i]==0);i--)//找到第一个不是零的数
    {
        if(i>=0)
            for(;i>=0;i--)
                printf("%d",num1[i]);
        else
            printf("0\n")
    }

3.第三道题是一个二维数组,二维数组里有一些数,然后找到一条和最小的路径。

我觉得和那个最长公共子序列很像。动态规划。等空下来再思考这题。

posted @ 2016-04-19 23:05  0giant  阅读(235)  评论(0编辑  收藏  举报