2016華為機試題 大數相減

2021-07-10 11:07:05 字數 1296 閱讀 5590

問題描述:

輸入一串以空格作為分割符的字串,字串由0~9組成,空格前面的部分字串為大數a,空格後的部分字串為大數b,用a-b,輸出做差結果

算例:輸入 12345678 99999999

輸出:-87654321

下面是實現的程式,程式寫的不好,有很多可以精簡的地方,但結果都正確。

// 大數相減.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#includeusing namespace std;

/*把a、b兩個數的長度補齊成一樣,以便相減*/

void buqi(int a[100], int b[100], int len1, int len2)

for (i = 0; i < len1 - len2; i++)

}else if (len1 < len2)

for (i = 0; i < len2 - len1; i++)

}else return;

}/*減法函式,要求字串一中的數,要大於字串二中的數*/

void sub(char str1[100], char str2[100])

i = 0;

while (str2[i] != '\0')

//for (i = 0; i < len1; i++)

// cout << b[i] << endl;

//對齊 位補齊

buqi(a, b, len1, len2);

//從低位到高位作差

for (i = maxlen - 1; i >= 0; i--) }

i = 0;

while (c[i++] == 0);//獲得第乙個不是0的數字的位置

//cout <> str1;//輸入

cin >> str2;

len1 = strlen(str1);

len2 = strlen(str2);

if (len1 > len2)

else if (len1=str2[i]) bigflag = 1;

else if (str1[i] == str2[i]) continue;

else if (str1[i] < str2[i]) bigflag = 2;

}} if (bigflag == 1) sub(str1, str2);

else if (bigflag == 2)

}system("pause");

return 0;

}

華為2016機試題

輸入一串用空格隔開的數字串,對於數字串的奇數字按公升序排序,偶數字按降序排序.示例輸入 4 6 2 3 6 7 8 1 處理過程 奇數字 4 2 6 8 公升序排序結果 2 4 6 8 偶數字 6 3 7 1 降序排序結果 7 6 3 1 include include using namespac...

華為2016機試題目

昨天去華為南研機試 故地重遊 沒啥感慨 題目很簡單 第一題 輸入乙個字串,輸出其中字母 數字 空格 其他字元的個數 輸入乙個字元之後 直接比較就行 邊界條件 也就是判斷是否為空 核心 如下 void countnumber char str,int numofletter,int numofnumb...

華為2016春招機試題

原題如下 求二叉樹的深度 描述 給出乙個字串形式表達的二叉樹,求出指定節點深度。輸入的樹形結構字串格式為 1 以父節點 左子樹 右子樹表示的二叉樹 每個父節點不會超過兩個子節點 2 樹的每乙個節點採用單個字母表示 樹的層次採用數字表示,樹根的層次為1,下一層為2,不會超過9層 3 字串以 節點名稱 ...