回覆列表
  • 1 # 每天解除安裝2次魯大師

    我把按照我對你提問的理解談下我的看法。

    首先,把兩個數轉化成字串形式,看長度(去前後掉空格)是否相等,如相等,再繼續以下步驟。

    以下有兩種方法:一、把要比較的兩個數轉換成字串,然後擷取每一個字元;二、利用(a mod 10^i) \10^(i-1),類似的情形,確定各個位數,當然實際為了減少計算機的計算儲存,在做迴圈時可以適當變下,不過對於這種簡單運算,不用刻意考慮,不會影響運算速度。

    現在以第一種方法舉例。假設兩個數分別為aa和bb,前提條件淡然是轉換為字串後長度(去前後空格)相等,否則就不用比了。假設長度都為n,就可以申明兩個字串型別的一維陣列a(1 to n)和b(1 to n),下面以a()舉例,凡是b()做相同操作。將做過處理的字串aa的每個字元分別賦予a(1 to n),然後判斷每個字元都是0到9的字元,而不是其它字元。做以下迴圈,最外重迴圈以i=n to 0為限,在b(1 to n)中尋找與a(n)xl相同的數,如果找不到,直接就認為不是你提問中的兩組數,如果找到一個b(j)於a(n)相等,就把a(n)去掉,b(n)也要去掉,但不能直接去掉,應該先把b(n)賦值給b(j),再把b(n去掉),接下來就相當於比較a(1 to n-1)和b(1 to n-1),接下來就是迴圈重複,但凡有找不到的時候,立即得出結論,就是不符合提問規定的兩組數,此時如果退出迴圈,i的數值一定在1到n之間如果一直找得到,陣列剩下的變數個數將會一直減少,最後減少到各一個,如果a(1)=b(1),提問就成立,此時再迴圈,n就為0,會出現下標溢位錯誤,所以最初申明變數時可以不要宣告a(1 to n) (對於b也一樣),而是申明a(n),預設預設0 to n。

    這樣導致的結果就是,如果最後輸出的i不為零,則提問的兩組數的關係不成立,為0則成立。這是充要條件。

  • 2 # 每天解除安裝2次魯大師

    不是幹這行的,沒事玩下,手頭只有office。用excel—VBA自定義的函式,希望指正。

    設計成這樣:如果長度不同,直接否定結論,如果有字母,直接否定結論,如果兩個符合要求的負數,肯定結論,如果兩個數相等,給出“完全相同”。如果結果是“是”,表示所選的兩組是數,且兩組數符合組成的數子相同,順序不同。

  • 3 # 神算百裡挑一

    這個現實做不到,能做到的和這原理一樣的有6種,條件是中間必須要間隔數,如1,2,5,8,10。0,3,5,7,9。0,3,6,9。4,7,10。只有這樣才能解開很多的數字迷。

  • 中秋節和大豐收的關聯?
  • 想要成為霍去病第二的李陵,為何最後卻在危難時刻選擇了投降?