区块链技术博客
www.b2bchain.cn

洛谷:P1179 数字统计 C++三种写法总结

这篇文章主要介绍了洛谷:P1179 数字统计 C++三种写法总结的讲解,通过具体代码实例进行20671 讲解,并且分析了洛谷:P1179 数字统计 C++三种写法总结的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=20671

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

0、前言

以前刷力扣的时候用过atoi函数,但是好像这道题没必要吧……

今天刷洛谷的时候,看见一道数字统计,这么简单的题目还没做!天理难容啊,打开,我相信五分钟就敲完了,我打算改进代码,下面是几种方法,越来越好!

文章目录

  • 0、前言
  • 1、stringstream
  • 2、部分改进to_string()
  • 直接判断不就行了:scream:

1、stringstream

以前的代码可以这么写,但是时间会慢一点,stringstream是简单,但是很耗时

#include <iostream> #include <string> #include <cstdlib> #include <sstream> using namespace std; string int2str(int aNum) {     stringstream res;     res << aNum;     string ans;     res >> ans;     return ans; } int char2int(char ch) {     stringstream res;     res << ch;     int aNum;     res >> aNum;     return aNum; } int main() {     int start, end;     int count = 0;     cin >> start >> end;     for (int i = start; i <= end; i++)     {         string stmp = int2str(i);         for (int idx = 0; idx < stmp.size(); idx++)         {             if (char2int(stmp[idx]) == 2)                 count++;         }     }     cout << count << endl;     return 0; } 

这样可以通过
洛谷:P1179 数字统计 C++三种写法总结
非常棒!

2、部分改进to_string()

好,那么既然string库有to_string函数,那么为什么不用呢?

#include <iostream> #include <string> #include <cstdlib> #include <sstream> using namespace std; int char2int(char ch) {     stringstream res;     res << ch;     int aNum;     res >> aNum;     return aNum; } int main() {     int start, end;     int count = 0;     cin >> start >> end;     for (int i = start; i <= end; i++)     {         string stmp = to_string(i);         for (int idx = 0; idx < stmp.size(); idx++)         {             if (char2int(stmp[idx]) == 2)                 count++;         }     }     cout << count << endl;     return 0; } 

洛谷:P1179 数字统计 C++三种写法总结
看图就知道,速度又快了一点!💪

直接判断不就行了😱

我可能有点晕,才发现用不着转化字符啊,直接判断字符不就完了?

#include <iostream> #include <string> #include <cstdlib> using namespace std; int main() {     int start, end;     int count = 0;     cin >> start >> end;     for (int i = start; i <= end; i++)     {         string stmp = to_string(i);         for (int idx = 0; idx < stmp.size(); idx++)         {             if (stmp[idx] == '2')                 count++;         }     }     cout << count << endl;     return 0; } 

洛谷:P1179 数字统计 C++三种写法总结

本文转自互联网,侵权联系删除洛谷:P1179 数字统计 C++三种写法总结

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 洛谷:P1179 数字统计 C++三种写法总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们