牛客 华为机试(我的代码记录)
https://www.nowcoder.com/ta/huawei
編譯器信息 版本:clang++3.9,采用c++11標(biāo)準(zhǔn),編譯的時候采用-O2級優(yōu)化,支持萬能頭文件 <bits/stdc++.h>。 輸入輸出處理 1. 核心代碼模式處理 不需要處理任何輸入輸出,直接返回值即可。 2. ACM 模式 你的代碼需要處理輸入輸出,請使用如下樣例代碼讀取輸入和打印輸出: #include <iostream> using namespace std;int main() {int a, b;while (cin >> a >> b) { // 注意 while 處理多個 casecout << a + b << endl;} } // 64 位輸出請用 printf("%lld")文章目錄
- HJ7 取近似值
- HJ15 求int型正整數(shù)在內(nèi)存中存儲時1的個數(shù)
- HJ11 數(shù)字顛倒
- HJ12 字符串反轉(zhuǎn)
- HJ22 汽水瓶
- 實質(zhì)上就是2瓶換1汽水(不包含瓶子)
- HJ37 統(tǒng)計每個月兔子的總數(shù)
- (找到結(jié)論:tuzi(month) = tuzi(month - 1) + tuzi(month - 2))
- HJ50 四則運(yùn)算
HJ7 取近似值
描述
寫出一個程序,接受一個正浮點(diǎn)數(shù)值,輸出該數(shù)值的近似整數(shù)值。如果小數(shù)點(diǎn)后數(shù)值大于等于5,向上取整;小于5,則向下取整。
輸入描述:
輸入一個正浮點(diǎn)數(shù)值
輸出描述:
輸出該數(shù)值的近似整數(shù)值
示例1
輸入:5.5
輸出:6
HJ15 求int型正整數(shù)在內(nèi)存中存儲時1的個數(shù)
描述
輸入一個int型的正整數(shù),計算出該int型數(shù)據(jù)在內(nèi)存中存儲時1的個數(shù)。
輸入描述:
輸入一個整數(shù)(int類型)
輸出描述:
這個數(shù)轉(zhuǎn)換成2進(jìn)制后,輸出1的個數(shù)
示例1
輸入:5
輸出:2
HJ11 數(shù)字顛倒
描述
輸入一個整數(shù),將這個整數(shù)以字符串的形式逆序輸出
程序不考慮負(fù)數(shù)的情況,若數(shù)字含有0,則逆序形式也含有0,如輸入為100,則輸出為001
輸入描述:
輸入一個int整數(shù)
輸出描述:
將這個整數(shù)以字符串的形式逆序輸出
示例1
輸入:1516000
輸出:0006151
HJ12 字符串反轉(zhuǎn)
描述
接受一個只包含小寫字母的字符串,然后輸出該字符串反轉(zhuǎn)后的字符串。(字符串長度不超過1000)
輸入描述:
輸入一行,為一個只包含小寫字母的字符串。
輸出描述:
輸出該字符串反轉(zhuǎn)后的字符串。
示例1
輸入:abcd
輸出:dcba
HJ22 汽水瓶
描述
有這樣一道智力題:“某商店規(guī)定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?”答案是5瓶,方法如下:先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以后4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然后你讓老板先借給你一瓶汽水,喝掉這瓶滿的,喝完以后用3個空瓶子換一瓶滿的還給老板。如果小張手上有n個空汽水瓶,最多可以換多少瓶汽水喝?
輸入描述:
輸入文件最多包含10組測試數(shù)據(jù),每個數(shù)據(jù)占一行,僅包含一個正整數(shù)n(1<=n<=100),表示小張手上的空汽水瓶數(shù)。n=0表示輸入結(jié)束,你的程序不應(yīng)當(dāng)處理這一行。
輸出描述:
對于每組測試數(shù)據(jù),輸出一行,表示最多可以喝的汽水瓶數(shù)。如果一瓶也喝不到,輸出0。
實質(zhì)上就是2瓶換1汽水(不包含瓶子)
HJ37 統(tǒng)計每個月兔子的總數(shù)
(找到結(jié)論:tuzi(month) = tuzi(month - 1) + tuzi(month - 2))
描述
有一只兔子,從出生后第3個月起每個月都生一只兔子,小兔子長到第三個月后每個月又生一只兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?
本題有多組數(shù)據(jù)。
輸入描述:
輸入int型表示month
輸出描述:
輸出兔子總數(shù)int型
示例1
輸入:9
輸出:34
結(jié)果:
1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21 9 34額,,,,跑不過,說我復(fù)雜度太大了。。。。也是
運(yùn)行超時 運(yùn)行超時:您的程序未能在規(guī)定時間內(nèi)運(yùn)行結(jié)束,請檢查是否循環(huán)有錯或算法復(fù)雜度過大。 答案錯誤 運(yùn)行時間 1001ms 占用內(nèi)存 0KB找到結(jié)論:tuzi(month) = tuzi(month - 1) + tuzi(month - 2)
#include <stdio.h> #include <string.h>int tuzi(int month) {if (month == 1 or month == 2)return 1;if (month >=3) {return tuzi(month - 1) + tuzi(month - 2);} }int main() {int month = 0;scanf("%d", &month);printf("%d\n", tuzi(month));return 0; }還是不行?不支持批量驗證??
那改成這樣就好了
#include <stdio.h> #include <string.h>int tuzi(int month) {if (month == 1 or month == 2)return 1;if (month >=3) {return tuzi(month - 1) + tuzi(month - 2);} }int main() {int month = 0;while(scanf("%d", &month)!=EOF){printf("%d\n", tuzi(month));}return 0; }HJ50 四則運(yùn)算
描述
輸入一個表達(dá)式(用字符串表示),求這個表達(dá)式的值。
保證字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表達(dá)式一定合法。
輸入描述:
輸入一個算術(shù)表達(dá)式
輸出描述:
得到計算結(jié)果
示例1
輸入:3+2*{1+2*[-4/(8-6)+7]}
輸出:25
總結(jié)
以上是生活随笔為你收集整理的牛客 华为机试(我的代码记录)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EOF的意义及用法(while(scan
- 下一篇: pytorch C++部署模型 ONNX