作者:指针不指南吗
专栏:算法刷题🐾或许会很慢,但是不可以停下来🐾
文章目录
- 题目
- 题解
- 总结
题目
题目链接
题解
- 使用string把长度达1000位的数字存起来
- 开一个代表个位数的数组 a[11]
- 倒序计算最后一位,对应的数组的值++
#include<bits/stdc++.h>
using namespace std;
int a[11];
int main(){
string s;
cin>>s;
for(int i=s.size()-1;i>=0;i--)
{
int x=s[i]-'0';
a[x]++;
// cout<<x<<endl;
}
for(int i=0;i<=9;i++){
if(a[i]!=0)
{
cout<<i<<":"<<a[i]<<endl;
}
}
return 0;
}
总结
- 段错误的情况
(1)数组越界,在这个题的for循环条件中,i++就出来段错误
(2) scanf错误的情况,检查,或换成cout - 大数字的情况
一开始int -> long long ->string
对于数据类型的范围不太清楚
如果提到几位长的数就是用string 敏感点