輸入輸出
任務:超級大的整數的輸入處理,比如,1234567899876543211234567893216549870
,這個數輸入,如何寫代碼
string str;
cin>>str;
for(int i=0;i<str.length();i++){
//訪問str[i]的內容
//若進行計算,需要str[i]-'0'
}
任務:格式化輸出一串數字,每個數字之間有空格,第一個數字之前和最後一個數字之後不允許有空格
int array[10];
for(int i=0;i<10;i++){
if(i!=0)cout<<" ";
//輸出數組元素array[i]
cout<<array[i];
}
語法
long 和 long long的區別
int
,長度是4 Byte
,範圍[-2^31, 2^31-1]
,
long int
,長度是4 Byte
,範圍[-2^31, 2^31-1]
,
long long int
,長度是8 Byte
,範圍[-2^63, 2^63-1]
。
常見代碼段
判素數
bool isPrime(int a){
for(int i=2;i*i<=a;i++){
if(a%i==0)return false;
}
return true;
}
a+b>c 爲真時,值爲true,假時,值爲false
(a+b>c?"true":"false")
其他
任務:統計一個數組中,每個數組元素出現的次數
#include<map>
using namespace std;
string str;
map<char, int> m;//無需初始化,可直接插入
for(int i=0;i<str.length();i++){
m[str[i]]++;
}
//至此,m中已經爲str每個字符記錄了對應的出現次數
for(int i=0;i<m.size();i++){
cout<<m[i]<<endl;
}
任務:整數的逐位訪問
int sum;
//......
string str = to_string(sum);//sum的最高位對應str[0],以此類推
for(int i=0;i<str.length();i++){
//訪問str[i]的內容
}