算法题中的一些记忆性的知识点(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]的内容
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章