2014华为上机题

//2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。 3111111111111111111111111.。。。,则输出。。。。#include<stdio.h>
#include <iostream>
#include <string>

using namespace std;

int main()

{
    string num1, num2;//用于保存两个长整数
   cin >> num1 >> num2;
   cout << "num1="<< num1<<",num2="<<num2<<endl;
   int len1,len2,len;
   len1 = num1.length();
   len2 = num2.length();
   len = (len1>=len2)?len1:len2 ;
   int l = len;

    int sum_int[len]={0};//用数组保存每位数相加之和
    string sum(len+1,‘0‘);

    //cout << "sum.size=" <<  sizeof(sum_int)/sizeof(int) << "sum[0]="<< sum_int[0]<<endl;//tes
    //cout << "sum.size=" <<  sum.size() << "sum[0]="<< sum[0]<<endl;//test

    for(len1--,len2--;len1>=0&&len2>=0;len1--,len2--)
    {
        sum_int[len]=(num1[len1]-‘0‘) +(num2[len2]-‘0‘);
        cout << len << "," <<sum_int[len]<<endl;
        len--;
    }
    while(len1>=0)
    {
        sum_int[len] = num1[len1]-‘0‘;
        len--;
        len1--;
    }
     while(len2>=0)
    {
        sum_int[len] = num2[len2]-‘0‘;
        len--;
        len2--;
    }

    for(int j=l;j>=0;j--)
    {

        if(sum_int[j]>9)
        {
            sum_int[j-1]+=1;
            sum_int[j]=sum_int[j]%10;
        }
        //cout << sum_int[j]<<endl;
        sum[j] = sum_int[j]+‘0‘;
    }

    //跳过开始的0
    int k = 0;
    while(sum[k]==‘0‘)
        k++;
    sum = sum.substr(k,l+1);
    cout << sum << endl;

}

解法二://用vector保存每位之和

时间: 2024-10-06 15:43:20

2014华为上机题的相关文章

2014华为上机题(转)

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2:另外数组的长度不超过50 #include<stdio.h> main() { intnum[50]={0}; inti,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"

华为上机题汇总(六)

华为上机题汇总(六) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总六 目录 第二十六题 第二十七题 第二十八题 第二十九题 第三十题 第二十六题 26.一副牌中发五张扑克牌给你:让你判断数字的组成: 有以下几种情况: 1:四条:即四张一样数值的牌(牌均不论花色)2:三条带 一对 3:三条带两张不相同数值的牌 4:两对 5:顺子 包括 10,J,Q,K,A 6:什么都不是 7:只有一对 #include <iostream> #include <

华为上机题汇总(二)

华为上机题汇总(二) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总二 目录 第六题 第七题 第八题 第九题 第十题 第六题 6.比较一个数组的元素 是否为回文数组(如abcdcba,hjjh) #include <iostream> #include <vector> #include <string> using namespace std; bool isPalindrome(const string &str){

华为上机题汇总(二十一)

华为上机题汇总(二十) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总二十 目录 第一百零一题 第一百零二题 第一百零三题 第一百零四题 第一百零五题 第一百零一题 101.合唱队问题 问题描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2-,K,他们的身高分别为T1,T2,-,TK, 则他们的身高满足T1<-Ti+1>->TK(1<

华为上机题汇总(十四)

华为上机题汇总(十四) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总十四 目录 第六十六题 第六十七题 第六十八题 第六十九题 第七十题 第六十六题 66.问题描述 股票是一种有价证券,是股份公司为筹集资金发给投资者作为公司资本部分所有权的凭证,成为股东以此获得股息(股利),并分享公司成长或交易市场波动带来的利润:但也要共同承担公司运作错误所带来的风险.南邮华为俱乐部会长小郑同学最近计划进入股市淘金,看中一支股票,借本次华为赛机会,请你帮忙指出:何时买

华为上机题汇总(十三)

华为上机题汇总(十三) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总十三 目录 第六十一题 第六十二题 第六十三题 第六十四题 第六十五题 第六十一题 61.给一个数组,输出数组里超出所有元素平均值的元素的个数.比如:1.2.3.4.5,输出3. #include <iostream> using namespace std; int overAvg(int a[],int n){ int sum = 0, count = 0; for (int i

华为上机题汇总(十)

华为上机题汇总(十) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总十 目录 第四十六题 第四十七题 第四十八题 第四十九题 第五十题 第四十六题 46.在给定字符串中找出单词( "单词"由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格.问号.数字等等:另外单个字母不算单词):找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中:如果某个单词重复出现多次,则只输出一次:如

华为上机题汇总(四)

华为上机题汇总(四) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总四 目录 第十六题 第十七题 第十八题 第十九题 第二十题 第十六题 16.将一个字符串的元音字母复制到另一个字符串,并排序(30分) 问题描述: 有一字符串,里面可能包含英文字母(大写.小写).数字.特殊字符,现在需要实现一函数,将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序(小写的元音字母在前,大写的元音字母在后,依次有序). 说明: 1.

华为上机题汇总(二十)

华为上机题汇总(二十) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总二十 目录 第九十六题 第九十七题 第九十八题 第九十九题 第一百题 第九十六题 96 . 给分数的循环节加括号 两个整数相除,将结果用字符串返回.如果是循环小数,将循环的位用括号括起来. 输入:1 3 输出:0.(3) 输入 1 7 输出 0.(142857) #include <iostream> #include <string> using namespace s