倚天屠龙记(函数模板)
目錄
題目描述
思路分析
AC代碼
題目描述
江湖中有一個傳言,只要倚天劍和屠龍刀中暗藏的秘密拼到一起,就能得到天下無敵的內(nèi)功秘笈。設(shè)計一個函數(shù)模板,完成拼湊的功能(將倚天劍的秘密連接到屠龍刀的后面),并將秘笈輸出. 其中每個秘密由n個元素組成,類型為T。
輸入
第一行輸入t表示有t個測試實例
第二行先輸入一個大寫字母表示數(shù)據(jù)類型,I表示整數(shù)類型,D表示雙精度數(shù)類型,C表示字符型;然后輸入n表示數(shù)據(jù)個數(shù)。
第三行輸入倚天劍的n個數(shù)據(jù)
第四行輸入屠龍刀的n個數(shù)據(jù)
依次輸入t個實例
輸出
每行輸出一個結(jié)果
輸入樣例1
2
I 5
5 3 51 27 9
27 0 0 5 1
C 5
kitty
hello
輸出樣例1
2700515351279
hellokitty
思路分析
咋一看題目在說什么東西?根據(jù)我們良好(bushi)的習慣,看不懂題目就看輸入輸出樣例,畢竟題目是看不懂的,但輸入輸出發(fā)生了什么變化還是可以看出來的。
第一感覺就是拼起來了。
好了,要寫一個模板函數(shù),這意味著我們需要用一種套路把字符和數(shù)字都能拼起來,那就……直接拼……
我的思路就是開一個二倍長度的數(shù)組,讓前面的一倍數(shù)組元素復制到后面的二倍數(shù)組剩余空間中,注意char型數(shù)組長度加1給結(jié)束符空間,然后輸出二倍數(shù)組。
AC代碼
#include <iostream> using namespace std; template<class T> void together(T* a, T* b, int n) {int i;for (i = n; i < 2 * n; i++)a[i] = b[i - n];for (i = 0; i < 2*n; i++)cout << a[i] ;cout << endl; } int main() {int t,i,n;char instru;cin >> t;while (t--){cin >> instru >> n;if (instru == 'I'){int* a = new int[2 * n];int* b = new int[n];for (i = 0; i < n; i++)cin >> b[i];for (i = 0; i < n; i++)cin >> a[i];together(a, b, n);delete[] a;delete[] b;}else if (instru == 'D'){double* a = new double[2 * n];double* b = new double[n];for (i = 0; i < n; i++)cin >> b[i];for (i = 0; i < n; i++)cin >> a[i];together(a, b, n);delete[] a;delete[] b;}else{char* a = new char[2 * n + 1];char* b = new char[n + 1];for (i = 0; i < n; i++)cin >> b[i];for (i = 0; i < n; i++)cin >> a[i];together(a, b, n);delete[] a;delete[] b;}}return 0; }總結(jié)
以上是生活随笔為你收集整理的倚天屠龙记(函数模板)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷友链Link
- 下一篇: android电话拨号器的使用