p1696 数与连分数

Posted archemiya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了p1696 数与连分数相关的知识,希望对你有一定的参考价值。

背景
...

...:“这个简单...我们还是去刚才的海边呗...”
...:"其实今晚...我是有一定要完成的事情的..." .,
威尼斯真的是一个美丽的城市...很小的时候我就听说这个地方..

这一天..从贝鲁特归来的商队..除了布匹和香辛料...还带来的东方的数字....
也有人曾经讨论过它们的历史...
只是很长时间这些都不被那些数学家们所重视..

人们怀着敬畏的心情..小心的审视着这些新奇的东西...
而它们..给生活在这片土地上的人们所带来的..是很大的帮助..
...

描述
写一个程序...可以实现在连分数和分数之间的互相转换...

样例1
样例输入1
[2;3,7]
51/22
样例输出1
51/22
[2;3,7]

思路
由于题中需要互相转换,这里我们需要定义两个函数,分别模拟两者之间的转换。

代码

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 void go(int x,int y,int t);
 6 void come(int x,int y);
 7 int a[1000];
 8 
 9 int main(){
10     char x[1000];
11     while(scanf("%s",x)!=EOF){
12         memset(a, 0, sizeof(a));
13         if(x[0]==[){
14             int t=1,q=1;
15             while(x[q]!=]){
16                 if(x[q]>=0&&x[q]<=9){
17                     a[t]=a[t]*10+x[q]-0;
18                 }
19                 else
20                     t++;
21                 q++;
22             }
23             go(a[t],1,t-1);
24         }
25         else{
26             int t=1,q=0;
27             while(x[q]!=\n&&x[q]!=EOF&&x[q]!=\0){
28                 if(x[q]>=0&&x[q]<=9){
29                     a[t]=a[t]*10+x[q]-0;
30                 }
31                 else
32                     t++;
33                 q++;
34             }
35             int m=a[1],n=a[2];
36             come(m,n);
37         }
38     }
39     return 0;
40 }
41 
42 void go(int x,int y,int t){
43     int i;
44     for(i=t;i>=1;i--){
45         int c=x;
46         x=y;
47         y=c;
48         x=x+y*a[i];
49     }
50     printf("%d",x);
51     if(y!=1)
52         printf("/%d",y);
53     printf("\n");
54     return;
55 }
56 
57 void come(int x,int y){
58     int e=1,k;
59     k=x/y;
60     printf("[%d",k);
61     x=x-k*y;
62     while(x!=0){
63         int c=x;
64         x=y;
65         y=c;
66         k=x/y;
67         x=x-k*y;
68         if(e==1)
69             printf(";%d",k),e=0;
70         else
71             printf(",%d",k);
72     }
73     printf("]\n");
74 }

 

以上是关于p1696 数与连分数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL分组与连表查询

Sidekiq 与连接到不同 Redis 实例的工作人员

Unity之跑马灯抽奖效果单抽与连抽

与连接到同一个公共热点的所有用户聊天的 Android 聊天应用程序

FirebaseInstanceId.getInstanceId()与连接到iPhone WearOS设备上SERVICE_NOT_AVAILABLE失败

QThread 线程间通信:连接到 &QThread::quit 与连接到 lambda [&thread] thread->quit(); 的奇怪行为