1. 程式人生 > >第五屆藍橋杯省賽JavaB組第六題奇怪的分式

第五屆藍橋杯省賽JavaB組第六題奇怪的分式

標題:奇怪的分式

    上小學的時候,小明經常自己發明新演算法。一次,老師出的題目是:

    1/4 乘以 8/5 

    小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (參見圖1.png)

    老師剛想批評他,轉念一想,這個答案湊巧也對啊,真是見鬼!

    對於分子、分母都是 1~9 中的一位數的情況,還有哪些算式可以這樣計算呢?

    請寫出所有不同算式的個數(包括題中舉例的)。

    顯然,交換分子分母后,例如:4/1 乘以 5/8 是滿足要求的,這算做不同的算式。

    但對於分子分母相同的情況,2/2 乘以 3/3 這樣的型別太多了,不在計數之列!

注意:答案是個整數(考慮對稱性,肯定是偶數)。請通過瀏覽器提交。不要書寫多餘的內容。

思路:

這道題用暴力搜尋就行,當滿足(j*l)*(i*10+k)==(i*k)*(j*10+l)這個條件時就是有一種情況了,還要注意的就是題中說一個分式中的分子和分母不同,並不是兩個分式中所有的數字都不相同。所以這裡只要保證i!=j k!=l就行了。

參考答案: 14

程式碼:

public class Main {
	public static void main(String[] args) {
		int count = 0;
		for(int i=1;i<10;i++){//分子1
			for(int j=1;j<10;j++){//分母1
				for(int k=1;k<10;k++){//分子2
					for(int l=1;l<10;l++){//分母2
						if(i!=j&&k!=l&&(j*l)*(i*10+k)==(i*k)*(j*10+l)){//只是說一個分式中的分子分母不同即可
							count++;
							System.out.println(i+"/"+j+" "+k+"/"+l);
							
						}
					}
				}
			}
		}
		System.out.println(count);
		
	}
}
截圖: