输入输出
任务:超级大的整数的输入处理,比如,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]的内容
}