四、字符串分割ios
•連續輸入字符串,請按長度爲8拆分每一個字符串後輸出到新的字符串數組;
•長度不是8整數倍的字符串請在後面補數字0,空字符串不處理。
數組
連續輸入字符串(輸入2次,每一個字符串長度小於100)
函數
輸出到長度爲8的新字符串數組
spa
abc00000 12345678 90000000
代碼:
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; #define MAX_INPUT_SIZE 100 int main() { int nInputLine = 0; int nStrLen = 8; char szInput[MAX_INPUT_SIZE] = {0}; while(cin >> szInput && nInputLine < 2) { nInputLine++; int nLen = strlen(szInput); int nLine = nLen / 8; for(int j = 0; j < nLen / 8; j++) { for(int k = 0; k < 8; k++) { printf("%c", szInput[j * 8 + k]); } printf("\n"); } if(nLen % 8 > 0) { for(int k = 0; k < nLen % 8; k++) { printf("%c", szInput[nLine * 8 + k]); } for(int k = nLen % 8; k < 8; k++) { printf("0"); } printf("\n"); } } return 0; }
這道題我居然一次就經過了。。code
五、進制轉換orm
寫出一個程序,接受一個十六進制的數,輸出該數值的十進制表示。(多組同時輸入 ) blog
輸入一個十六進制的數值字符串。遞歸
輸出該數值的十進制字符串。接口
10
代碼:
#include <iostream> #include <stdio.h> #include <string.h> #define MAX_SIZE 0x100 int main() { char szInput[MAX_SIZE] = {0}; //scanf("%s", szInput); while(scanf("%s", szInput) != EOF) { int nRes = 0; int nLen = strlen(szInput); for(int nIndex = 2; nIndex <= nLen; nIndex++) { if(('A' <= szInput[nIndex] && szInput[nIndex] <= 'F') || ('0' <= szInput[nIndex] && szInput[nIndex] <= '9')) { int nTmp = 0; switch(szInput[nIndex]) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': nTmp = szInput[nIndex] - 'A' + 10; break; default: nTmp = szInput[nIndex] - '0'; break; } nRes = nRes * 16 + nTmp; } } printf("%d\n", nRes); memset(szInput, 0, MAX_SIZE * sizeof(char)); } //system("pause"); return 0; }
六、質數因子ip
功能:輸入一個正整數,按照從小到大的順序輸出它的全部質數的因子(如180的質數因子爲2 2 3 3 5 )
詳細描述:
函數接口說明:
public String getResult(long ulDataInput)
輸入參數:
long ulDataInput:輸入的正整數
返回值:
String
輸入一個long型整數
按照從小到大的順序輸出它的全部質數的因子,以空格隔開。最後一個數後面也要有空格。
2 2 3 3 5
代碼:
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #define MAX_SIZE 0x100 int IsPrimeNum(long lNum) { if(1 == lNum || 2 == lNum) { return 1; } int nFlag = 1; //for(long i = 2; i <= lNum / 2; i++) for(long i = 2; i <= sqrt((double)lNum); i++) { if(lNum % i == 0) { nFlag = 0; } } return nFlag; } int GetPrimeNum(long lNum) { if(IsPrimeNum(lNum)) { printf("%ld ", lNum); return 1; } for(long i = 2; i < lNum / 2; i++) { if(IsPrimeNum(i) && lNum % i == 0) { printf("%ld ", i); GetPrimeNum(lNum / i); break; } //遞歸 } } int main() { long lInput = 0; scanf("%ld", &lInput); if(lInput <= 0) { return 0; } if(1 == lInput) { printf("1 "); return 0; } if(2 == lInput) { printf("2 "); return 0; } if(IsPrimeNum(lInput)) { printf("%ld ", lInput); return 0; } //for(long i = 2; i < lInput / 2;) for(long i = 2; i < sqrt((double)lInput);) { if(IsPrimeNum(i) && lInput % i == 0) { printf("%ld ", i); lInput /= i; if(IsPrimeNum(lInput)) { printf("%ld ", lInput); break; } continue; } i++; } //GetPrimeNum(lInput); system("pause"); return 0; }