1.神奇的字符串之快速求和

前言

这个专栏是分享一些好用的数据 和一些解题比较快的小方法 会持续更新 因为博主还是计算机方向的小白 知道的东西还是很少 希望大家可以多多指教🌹🌹🌹🌹🌹🌹🌹🌹。

正题

众所周知 字符串一直是一个比较好用的数据类型 今天在无意之间做题的时候看到了一道求解一个整数的每一位的总和是多少
首先 第一种思路是定义一个数组直接将每一位拿出来然后相加 这个是我第一时间就想到的 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类型的数据还是很有用的 可以帮助我们解决很多问题 也希望这篇博文可以帮助到大家

我会继续加油的🤞🏼🤞🏼🤞🏼🤞🏼!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@桐同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值