文章目录
。
前言
这个专栏是分享一些好用的数据 和一些解题比较快的小方法 会持续更新 因为博主还是计算机方向的小白 知道的东西还是很少 希望大家可以多多指教🌹🌹🌹🌹🌹🌹🌹🌹。
正题
众所周知 字符串一直是一个比较好用的数据类型 今天在无意之间做题的时候看到了一道求解一个整数的每一位的总和是多少
首先 第一种思路是定义一个数组直接将每一位拿出来然后相加 这个是我第一时间就想到的 but 后来发现可以利用字符串直接拿出来每一个数据
先看第一个代码 直接循环取出每一位数
int main()
{
int tmp;
int arr[101];
int n;
int count=0;
cin>>n;
tmp=n;
while(tmp)
{
tmp=tmp/10;
count++;//获取到一共有几位数 为了后边方便确定数据的位数
}
for(int i=0;i<count;i++)
{
arr[i]=n%10;
n/=10;
}
//之后进行循环求和处理 但是你会发现这个做法思路是很简单 但是过程比较繁琐 所以一个比较高端的写法出现了
}
int main()
{
int sum=0;
string a;
string b;
cin>>a;
b=a;
reverse(a.begin(),a.end());//这个是逆序字符串 方便我们进行求阶乘和的一种函数
for(int i=0;i<a.size();i++)
{
sum+=(int)((a[i]-'0');//这句代码是想说我们拿出每一位位 然后进行加和 因为我们写进去的都是字符 和字符0进行相减得到的就是数值差 也即是我们想要的数据 然后进行强制类型准换之后加和 代码量减少了很多
}
}
总结
可见string类型的数据还是很有用的 可以帮助我们解决很多问题 也希望这篇博文可以帮助到大家
我会继续加油的🤞🏼🤞🏼🤞🏼🤞🏼!!!