問題:有1個18位數A3640548981270644B,它能被99整除。撰寫一程式,計算滿足上述條件的數對(A,B)有多少組?

 

這個問題不算困難,基本上用雙迴圈自動對(A,B)填上數值,再試看是否能被99整除即可找出答案

 


但LabVIEW對這麼大數值處理上的問題限制了能使用的方法,用字串組合(A,B)和中間的數值字串後再轉成數值基本上不能用,因為字串轉數值整數最大只能轉出32位元數值,無法處理64位元的數值


那轉成DBL的浮點數呢?轉成浮點數雖然可以處理這麼大的數值,但有數值跑掉的問題,無法算出正確結果


如下圖:


來源是18位數的EXT格式數值,轉成DBL格式之後,個位和十位數跑掉了

20100606-01  

 

 

這個題目等於是針對8.X以上版本程式出的題目,只要把計算的數值全轉為64位元的I64格式即可解決這個問題


完成的程式

20100606-05  

 

 

 

那7.1版本的程式要如何做這一題?首先計算的數值要全部轉成EXT格式數值,但顯示的數值會變成以科學記號顯示的數值,所以在數值的屬性設定上改一下,不用科學記號來顯示,如下圖:

20100606-02  

 

 

完成的7.1版程式,注意比較餘數是否為0要用程式中的方法,不要直接使用等於0的那個元件

20100606-04  

 

 

執行的結果

20100606-03  

創作者介紹

LabVIEW & PLC還未出師的小工程師部落格

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()