zoukankan      html  css  js  c++  java
  • 埃及分数

    设计一个算法,把一个真分数表示为埃及分数之和的形式。
    所谓的埃及分数是指分子为1的分数,如7/8=1/2+1/3+1/24.
    要求用最少的埃及分数来表示。
    即:输入A/B,用最少的埃及分数去表示A/B这个分数。

    贪心算法:

     1 #include<stdio.h>
     2 int fun(int A,int B);
     3 int main()
     4 {
     5     int A,B;
     6     scanf("%d%d",&A,&B);
     7     if(A>=B) return 0;
     8     else fun(A,B);
     9     return 0;
    10 }
    11 int fun(int A,int B)
    12 {
    13     int D,C,flag=0;
    14     printf("%d/%d=",A,B);
    15     if(A==1)
    16     {
    17         printf("%d/%d
    ",A,B);
    18         return 0;
    19     }
    20     else 
    21     {
    22         while(A!=1)
    23         {
    24             D=B/A;
    25             C=D+1;
    26             if(flag==0)
    27             {
    28                 printf("1/%d",C);
    29                 flag=1;
    30             }
    31             else 
    32             {
    33                 printf("+1/%d",C);
    34             }
    35             A=A*C-B;
    36             B=B*C;
    37             if(B%A==0) 
    38             {
    39                 B=B/A;
    40                 A=1;
    41             }
    42         }
    43         printf("+%d/%d",A,B);
    44         printf("
    ");
    45     }
    46 }
  • 相关阅读:
    Node.js Express框架
    Node.js Web模块
    Node.js 工具模块
    Node.js GET/POST请求
    Node.js 文件系统
    Node.js 常用工具
    【day03】Xhtml
    【day02】Xhtml
    【紫书】【重要】Not so Mobile UVA
    【紫书】Tree UVA
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/7298772.html
Copyright © 2011-2022 走看看