【♂Not The Triumph♂O(∩_∩)O哈哈~But The Struggle♂】

竞赛决不是捷径,它只是另一种艰辛的生活方式。得到与失去,只有时间会去评判;成功与失败,只有历史能去仲裁。我不会永远成功,正如我不会永远失败一样

  C++博客 :: 首页 :: 联系 ::  :: 管理
  6 Posts :: 239 Stories :: 25 Comments :: 0 Trackbacks

常用链接

留言簿(7)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 108434
  • 排名 - 229

最新评论

阅读排行榜

评论排行榜

描述

输入一个自然数N,请写一个程序来增序输出分母小于等于N的最简既约分数

格式

PROGRAM NAME: frac1

INPUT FORMAT:

(file frac1.in)

单独的一行 一个自然数N(1..160)

OUTPUT FORMAT:

(file frac1.out)

每个分数单独占一行,按照大小次序排列

SAMPLE INPUT

5

SAMPLE OUTPUT

0/1
1/5
1/4
1/3
2/5
1/2
3/5
2/3
3/4
4/5
1/1

分析:模拟“法雷数列”做法,看看法雷数列
【参考程序】:

/*
ID: XIONGNA1
PROG: frac1
LANG: C++
*/
#include
<iostream>
using namespace std;
int n;
void dfs(int a,int b,int c,int d)
{
    
if (b+d>n) return ;
    dfs(a,b,a
+c,b+d);
    printf(
"%d/%d\n",a+c,b+d);
    dfs(a
+c,b+d,c,d);
}
int main()
{
    freopen(
"frac1.in","r",stdin);
    freopen(
"frac1.out","w",stdout);
    scanf(
"%d",&n);
    printf(
"0/1\n");
    dfs(
0,1,1,1);
    printf(
"1/1\n");
    
return 0;
}
posted on 2009-07-17 10:38 开拓者 阅读(169) 评论(0)  编辑 收藏 引用 所属分类: USACO 题解

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理