算法題中的一些記憶性的知識點(C++)更新中

輸入輸出

任務:超級大的整數的輸入處理,比如,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]的內容
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章