作者:指针不指南吗
专栏:算法刷题🐾或许会很慢,但是不可以停下来🐾
文章目录
- 题目
- 题解
- 总结
题目
题目链接
题解
- 使用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 敏感点