【C/C++】对于编写程序的思维,一个感悟

编写程序:1到 100 的所有整数中出现多少次数字9

首先,我想着可以考虑通过字符串查找匹配,强制类型转换来做,然而没有成功,可能是因为现在还是初级水平的原因吧。然后去万能的百度上看了一下,换了种思路写:

int i = 0;
 for (i=0; i < 100; i++)
 {
 	 if ((i % 10 == 9) || ((i / 10) == 9))
  	 printf("%d  ",i);
 }

这是正确的程序。这段代码没有单纯的让计算机去执行一个机械的比对操作,它是通过题目中的数学逻辑来确定算法思路。
终于理解为什么程序员都爱掉头发了,确实编程中有一些机械重复的搬砖工作,但当要解决一个问题时,需要运用到数学知识,算法,问题本身的个性化特点等方方面面大胆千方百计的去解决它。
用C++解决该问题的代码:

#include<iostream>
using namespace std;
class OprateNum
{
public:
void InitNum()
{
  	for (int i = 0; i < 101; i++)
 	 {
  		 num[i] = i;
  	}
}
void Display()
{
  for (auto ele : num)
  {
   	cout << ele << ' ';
  }
  cout << endl;
}
void find9()
{
  for (auto ele : num)
  {
  	 if ((ele % 10 == 9) || ((ele / 10) == 9))
    	cout << ele << ' ';
  }
  cout << endl;
}
private:
 	int num[101];
};
void main()
{
 	OprateNum Num;
	Num.InitNum();
	Num.Display();
 	Num.find9();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值