數制轉換分數: 2
時間限制:1 秒 記憶體限制:32 兆 特殊判題: 否 送出:59 解決: 24
标簽
- 進制轉換
題目描述
求任意兩個不同進制非負整數的轉換(2進制~16進制),所給整數在long所能表達的範圍之内。
不同進制的表示符号為(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
輸入格式
輸入隻有一行,包含三個整數a,n,b。a表示其後的n 是a進制整數,b表示欲将a進制整數n轉換成b進制整數。a,b是十進制整數,2 =< a,b <= 16。
輸出
可能有多組測試資料,對于每組資料,輸出包含一行,該行有一個整數為轉換後的b進制數。輸出時字母符号全部用大寫表示,即(0,1,...,9,A,B,...,F)。
樣例輸入
4 123 10
樣例輸出
27
提示[+]
*** 提示已隐藏,點選上方 [+] 可顯示 ***
分類
- 北京大學研究所學生複試上機真題
-
1 #include <iostream> 2 #include <string> 3 #include <algorithm> 4 using namespace std; 5 string shuzi="0123456789ABCDEF";//用來 根據整數查找字元串中字元的位置 6 int ch[128]={0};//根據字元存放該字元所對應的整數值 7 long toshi(string str,int a) 8 { 9 int sum=0; 10 for(int i=0;i<str.length();i++) 11 { 12 sum=sum*a+ch[str[i]]; 13 } 14 return sum; 15 } 16 string change(int sum,int b) 17 { 18 string change=""; 19 if(sum==0) change="0";//"0"不要忘掉 20 while(sum>0) 21 { 22 change=change+shuzi[sum%b]; 23 sum=sum/b; 24 } 25 reverse(change.begin(),change.end()); 26 return change; 27 } 28 int main() 29 { 30 for(int i=0;i<10;i++) 31 ch['0'+i]=i; 32 for(int i=0;i<7;i++) 33 { 34 ch['A'+i]=10+i; 35 ch['a'+i]=10+i; 36 } 37 int a,b; 38 string str; 39 while(cin>>a>>str>>b) 40 { 41 int sum=toshi(str,a); 42 string cha=change(sum,b); 43 cout<<cha<<endl; 44 } 45 }
統計單詞分數: 1.5
時間限制:1 秒 記憶體限制:32 兆 特殊判題: 否 送出:95 解決: 44
标簽
- 字元串處理
- 統計單詞數
題目描述
編一個程式,讀入使用者輸入的,以“.”結尾的一行文字,統計一共有多少個單詞,并分别輸出每個單詞含有多少個字元。
(凡是以一個或多個空格隔開的部分就為一個單詞)
輸入格式
輸入包括1行字元串,以“.”結束,字元串中包含多個單詞,單詞之間以一個或多個空格隔開。
輸出
可能有多組測試資料,對于每組資料,
輸出字元串中每個單詞包含的字母的個數。
樣例輸入
hello how are you.
樣例輸出
5 3 3 3
提示[+]
*** 提示已隐藏,點選上方 [+] 可顯示 ***
分類
- 華中科技大學究生複試上機真題
-
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 string ss; 7 while(getline(cin,ss)) 8 { 9 int n=0;int sum=0; 10 while(ss[n]!='.') 11 { 12 if(ss[n]==' ') 13 if(sum!=0) 14 { 15 cout<<sum<<" "; 16 sum=0; 17 } 18 if(ss[n]!=' ') 19 sum++; 20 n++; 21 } 22 cout<<sum<<endl; 23 } 24 }
字元串的查找删除
時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
送出:2798
解決:1101
- 題目描述:
- 給定一個短字元串(不含空格),再給定若幹字元串,在這些字元串中删除所含有的短字元串。
- 輸入:
-
輸入隻有1組資料。
輸入一個短字元串(不含空格),再輸入若幹字元串直到檔案結束為止。
- 輸出:
- 删除輸入的短字元串(不區分大小寫)并去掉空格,輸出。
- 樣例輸入:
- in#include int main(){printf(" Hi ");}
- 樣例輸出:
- #cludetma(){prtf("Hi");}
- 提示:
- 注:将字元串中的In、IN、iN、in删除。
- 來源:
- 2009年北京航空航天大學計算機研究所學生機試真題
天勤給出的答案是錯的,沒有考慮到“i nwdqwd”的情況,應該先删空格,然後在删“in”
這題我的代碼天勤自己的OJ AC不了,九度的可以
1 #include<iostream>
2
3 #include<string>
4 using namespace std;
5
6
7 string low(string str)
8 {
9 for(int i=0;i<str.length();i++)
10 if(str[i]<='Z'&&str[i]>='A') str[i]=str[i]+'a'-'A';
11 return str;
12 }
13
14 int main()
15 {
16 int n=0;
17 string s1,s2;
18 getline(cin,s1);
19 while(getline(cin,s2))
20 {
21
22 string temp=low(s1);
23 int j=0;
24 while(j<s2.length())
25 {
26 if(s2[j]==' ')
27 s2=s2.substr(0,j)+s2.substr(j+1,s2.length());
28 else
29 j++;
30 }
31 j=0;
32 while(j<s2.length())
33 {
34 if(low(s2.substr(j,s1.length()))==s1)
35 s2=s2.substr(0,j)+s2.substr(j+s1.length(),s2.length());
36 else
37 j++;
38 }
39 cout<<s2<<endl;
40 }
41 return 0;
42 }
43 /**************************************************************
44 Problem: 1168
45 User: 2009declan
46 Language: C++
47 Result: Accepted
48 Time:0 ms
49 Memory:1520 kb
50 ****************************************************************/
最長&最短文本分數: 1.5
時間限制:1 秒 記憶體限制:32 兆 特殊判題: 否 送出:92 解決: 43
标簽
- 字元串處理
- 字元串長度
題目描述
輸入多行字元串,請按照原文本中的順序輸出其中最短和最長的字元串,如果最短和最長的字元串不止一個,請全部輸出。
輸入格式
輸入包括多行字元串,字元串的長度len,(1<=len<=1000)。
輸出
按照原文本中的順序輸出其中最短和最長的字元串,如果最短和最長的字元串不止一個,請全部輸出。
樣例輸入
hello
she
sorry
he
樣例輸出
he
hello
sorry
提示[+]
*** 提示已隐藏,點選上方 [+] 可顯示 ***
分類
- 華中科技大學究生複試上機真題
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string s1[1000]; 7 int n=0; 8 while(getline(cin,s1[n])) 9 { 10 n++; 11 } 12 int max=s1[0].length(); 13 int min=s1[0].length(); 14 for(int i=1;i<n;i++) 15 { 16 if(s1[i].length()>max) max=s1[i].length(); 17 if(s1[i].length()<min) min=s1[i].length(); 18 } 19 for(int i=0;i<n;i++) 20 { 21 if(s1[i].length()==min) cout<<s1[i]<<endl;; 22 } 23 for(int i=0;i<n;i++) 24 { 25 if(s1[i].length()==max) cout<<s1[i]<<endl;; 26 } 27 return 0; 28 } 29
首字母大寫分數: 1.5
時間限制:1 秒 記憶體限制:32 兆 特殊判題: 否 送出:95 解決: 48
标簽
- 字元串處理
題目描述
對一個字元串中的所有單詞,如果單詞的首字母不是大寫字母,則把單詞的首字母變成大寫字母。
在字元串中,單詞之間通過空白符分隔,空白符包括:空格(' ')、制表符('\t')、回車符('\r')、換行符('\n')。
輸入格式
輸入一行:待處理的字元串(長度小于100)。
輸出
可能有多組測試資料,對于每組資料,
輸出一行:轉換後的字元串。
樣例輸入
if so, you already have a google account. you can sign in on the right.
樣例輸出
If So, You Already Have A Google Account. You Can Sign In On The Right.
提示[+]
*** 提示已隐藏,點選上方 [+] 可顯示 ***
分類
- 北京大學研究所學生複試上機真題
- WS :測試檔案:/test0.out 結果:答案錯誤=======原因======當參考答案輸出:wang Is A String-------時---------你的程式輸出:Wang Is A String=================測試檔案:/sample.out 結果:答案正确
- 想不通為什麼會有第一個是小寫的w的情況,估計是OJ錯了
- 天勤上面的答案沒有考慮到标點符号
- 給出自己的代碼
- :
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string s; 7 int n=0; 8 while(getline(cin,s)) 9 { 10 if(s[0]>='a'&&s[0]<='z') s[0]=s[0]-('a'-'A');//先檢查第一個 11 for(int i=0;i<s.length()-1;i++) 12 { 13 if(s[i]<'A'||(s[i]>'Z'&&s[i]<'a')||s[i]>'z') 14 if(s[i+1]>='a'&&s[i+1]<='z') 15 s[i+1]=s[i+1]-('a'-'A'); 16 } 17 cout<<s<<endl; 18 } 19 return 0; 20 }
字元串的反碼分數: 1.2
時間限制:1 秒 記憶體限制:32 兆 特殊判題: 否 送出:143 解決: 47
标簽
- 字元轉換
題目描述
一個二進制數,将其每一位取反,稱之為這個數的反碼。下面我們定義一個字元的反碼。如果這是一個小寫字元,則它和字元'a’的距離與它的反碼和字元'z’ 的距離相同;如果是一個大寫字元,則它和字元'A’的距離與它的反碼和字元'Z’的距離相同;如果不是上面兩種情況,它的反碼就是它自身。
舉幾個例子,'a’的反碼是'z’;'c’的反碼是'x’;'W’的反碼是'D’;'1’的反碼還是'1’;'$'的反碼還是'$'。
一個字元串的反碼定義為其所有字元的反碼。我們的任務就是計算出給定字元串的反碼。
輸入格式
輸入每行都是一個字元串,字元串長度不超過 80 個字元。如果輸入隻有!,表示輸入結束,不需要處理。
輸出
對于輸入的每個字元串,輸出其反碼,每個資料占一行。
樣例輸入
Hello
JLU-CCST-2011
!
樣例輸出
Svool
QOF-XXHG-2011
提示[+]
*** 提示已隐藏,點選上方 [+] 可顯示 ***
分類
- 吉林大學究生複試上機真題
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string s; 7 while(getline(cin,s)) 8 { 9 if(s[0]=='!'&&s.length()==1) break;//注意:隻有一個“!” 10 string s1=s;//目的是複制長度 11 for(int i=0;i<s.length();i++) 12 { 13 if('a'<=s[i]&&s[i]<='z') 14 s1[i]='z'-(s[i]-'a'); 15 else if('A'<=s[i]&&s[i]<='Z') 16 s1[i]='Z'-(s[i]-'A'); 17 else s1[i]=s[i]; 18 } 19 cout<<s1<<endl; 20 } 21 return 0; 22 }
統計字元分數: 1
時間限制:1 秒 記憶體限制:32 兆 特殊判題: 否 送出:138 解決: 78
标簽
- 字元串處理
- 統計字元
題目描述
統計一個給定字元串中指定的字元出現的次數。
輸入格式
測試輸入包含若幹測試用例,每個測試用例包含2行,第1行為一個長度不超過5的字元串,第2行為一個長度不超過80的字元串。注意這裡的字元串包含空格,即空格也可能是要求被統計的字元之一。當讀到'#'時輸入結束,相應的結果不要輸出。
輸出
對每個測試用例,統計第1行中字元串的每個字元在第2行字元串中出現的次數,按如下格式輸出:
c0 n0
c1 n1
c2 n2
...
其中ci是第1行中第i個字元,ni是ci出現的次數。
樣例輸入
I
THIS IS A TEST
i ng
this is a long test string
#
樣例輸出
I 2
i 3
5
n 2
g 2
提示[+]
*** 提示已隐藏,點選上方 [+] 可顯示 ***
分類
- 浙江大學研究所學生複試上機真題
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string a,b; 7 while(getline(cin,a)&&(a[0]!='#'))//getline(cin,str)讀取一行 8 { 9 getline(cin,b); 10 int count[128]={0};//ASCII碼有128種 11 for(int i=0;i<b.length();i++) 12 count[b[i]]++; 13 for(int i=0;i<a.length();i++) 14 cout<<a[i]<<" "<<count[a[i]]<<endl; 15 } 16 return 0; 17 } 18
轉載于:https://www.cnblogs.com/xiaoyesoso/p/4271468.html