首先,我想着可以考慮通過字串查詢匹配,強制型別轉換來做,然而沒有成功,可能是因爲現在還是初級水平的原因吧。然後去萬能的百度上看了一下,換了種思路寫:
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();
}