uva 10976 分數拆分
很水的一道數學題 , 就當練練手了 , 輸入正整數k,找到所有正整數x>=y,
使得1/k = 1/x + 1/y
問題分析 :
由於x>=y 即1/x<=1/y , 於是選擇列舉比較小的y , y<=2k , 只需要在2k範圍內列舉y即可,
用y k 表示 x 即可
#include <iostream>
#include <cstdio>using namespace std;
int main(void)
{
int k,x,y,court;
while(scanf("%d",&k)!=EOF && k){
court = 0 ;
for(y=k+1 ; y<=2*k ; y++){
if( (y*k)%(y-k)==0 ){
x = (y*k)/(y-k);
if(x>=y) court ++ ;
}
}
printf("%d\n",court);
for(y=k+1 ; y<=2*k ; y++){
if( (y*k)%(y-k)==0 ){
x = (y*k)/(y-k);
if(x>=y) printf("1/%d = 1/%d + 1/%d\n",k,x,y);
}
}
}
return 0;
}
相關推薦
uva 10976 分數拆分
很水的一道數學題 , 就當練練手了 , 輸入正整數k,找到所有正整數x>=y, 使得1/k = 1/x + 1/y 問題分析 : 由於x>=y 即1/x<=1/y , 於是選擇列舉比較小的y , y<=2k , 只需要在2k範圍內列舉y即可, 用
UVA 10976 分數拆分(數論+列舉)
Discription 給定一個k,構造一個等式 1/k = 1/x + 1/y ,其中x>=y。 Input 輸入不超過100行(0 < k ≤ 10000) Output 輸出x y的數目和x y的值。 Sample Input
UVA-10976 Fractions Again?!(分數拆分)(列舉)
題目描述:輸入正整數k,找到所有的正整數x≥y,使得 1/k = 1/x + 1/y 樣例輸入: 樣例輸出: 2 2 12 1/2 = 1/
Fractions Again?! UVA - 10976
eve int ram ++ quest rac tdi turn math It is easy to see that for every fraction in the form 1k(k > 0), we can always find two positiv
【例題 7-3 UVA - 10976】Fractions Again?!
ror pro .sh ios things ref div spa math 【鏈接】 我是鏈接,點我呀:) 【題意】 在這裏輸入題意 【題解】 x>=y => \(\frac{1}{x}<=\frac{1}{y}\) => \(\
uva 10976 Fractions Again?!
important while 如果 spa return 處理 cin ios out 原題描述:輸入k,輸出滿足x>=y並且1/k=1/x+1/y的所有數據;首先是確定枚舉的邊界x>=y 可得1/k<=2/y ∴y<=2k又有x>=y 可以
例題7-3 分數拆分
【題目描述】 輸入正整數k,找到所有的正整數x≥y,使得1/k=1/x+1/y input: 2 12 output: 2 21/2 = 1/6 + 1/3 1/2 = 1/4 + 1/4 8 1/12 = 1/156 + 1/13 1/12 = 1/84 + 1/14 1/12 =
UVa-10976 Fractions Again?!
1 #include <bits/stdc++.h> 2 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 3 using namespace std; 4 5 bool ok(int y,int k) 6 {
C/C++ 演算法分析與設計:列舉(分數拆分)
題目描述 現在輸入一個正整數k,找到所有的正整數x>=y,使得1/k=1/x+1/y. 輸入 第一行輸入一個整數n,代表有n組測試資料。 接下來n行每行輸入一個正整數k 輸出 按順序輸出對應每行的k找到所有滿足條件1/k=1/x+1/y的組合 樣例輸入 2
Uva10976 分數拆分 Fractions Again?!
題目連結 題意 輸入正整數k,找到所有的正整數x>=y,使得1/k=1/x + 1/y; 分析 剛開始沒理解透題意 還以為這道題很難來著2333 靈光一現 就發現規律了 hhh 因為 x>=y ,所以 1/ x <= 1/y –> 1/k -1/y
分數拆分(C語言)
輸入正整數k,找到所有的正整數x>=y,使得1/k=1/x + 1/y; 樣例輸入: 2 12 樣例輸出: 2 1/2 = 1/6 + 1/3 1/2 = 1/4 + 1/4 8
分數拆分問題
輸入正整數 k,找到所有的正整數x≥y,使得 樣例輸入: 2 12 樣例輸出: 1/2=1/3+1/6 1/2=1/4+1/4 2 1/12=1/156+1/13 1/12=1/84+1/14
(難)分數拆分(CDOJ1668)
剪枝很重要,,還要注重最小分數要依次最大,好。 #include<iostream> #include<cstdio> #include<cstring> #include<ctype.h> #include<vec
西普實驗吧CTF-分數拆分
題目描述: 存在這樣的一個等式,1/400=1/x+1/2y,(x>y)。你的任務就是求出共有多少對這樣的正整數x和y,使得該等式成立。(提示:你只需要求出有多少對,而不必輸出這些X,Y對具體是
2017.8.8測試 題一 分數拆分
題解:慢慢列舉滿足即可。因為x≥y,所以y≤2*k,且y≥k,所以迴圈範圍就是k+1 to 2*k。不過直接用1/i和1/k,會出問題(計算機中沒分數),所以就變成k/i*k和i/i*k。再者,1/x=1/k-1/y。所以1/x=i/i*k - k/i*k=i-k/i*k
【演算法競賽】:分數拆分
題目 輸入正整數K,找到所有的正整數x>=y,使得1/k = 1/x+1/y 樣例輸入: 2 12 樣例輸出: 思路: 對等式進行化簡,然後得到K,x,y的一個關係式: x
簡單列舉--最大乘積、分數拆分
題意: 輸入n個元素組成的序列S,找出一個乘積最大的連續子序列。如果這個最大的乘積不是正數,輸出0(表示無解)。1<=n<=18,-10<=Si<=10。每一個案例之間用空白行分隔,案例輸出要求輸出"Case #M: The ma
分數拆分 C語言實現
分數拆分 輸入正整數k,找到所有的正整數x>=y,使得1/k=1/x + 1/y; 樣例輸入: 2 12 樣例輸出: 2 1/2 = 1/6 + 1/3 1/2 = 1/4 + 1/4 8 1/12 = 1/156 + 1/13 1/12 = 1
uva 10313 整數拆分——硬幣湊價
給你一個價格n,求在指定使用的硬幣個數範圍內付款的方案數,後面可能給你邊界a,b,也可能不給,不給的話個數是1-n,給一個a就是1-a,給兩個是a-b 直接開二維陣列揹包的話會算重複,比如湊6的話,1、2、3,,2、1、3,3、1、2,一種方案就數了三遍,需加一維限制大
Fractions Again?! (UVA - 10976)
actions stdio.h () urn uva sin ++ ans stream #include<stdio.h>#include<iostream>using namespace std;int main(){ int k,x,y,ans