题解 | 连分数

连分数

https://www.nowcoder.com/practice/8e225697ad4043b5a2669f890ae90974

一道递归类型的题目,注意下一层到底是整数还是需要继续运算的算术表达式就没问题(╹ڡ╹ )

#include <iostream>
using namespace std;
typedef long long ll;
void f(ll p,ll q)
{
        ll x=p/q;
        ll y=p%q;
        if(y==0)cout<<x;
        else
        {
             cout<<x<<"+1/";
             int x2=q%y;
             if(y!=1&&x2!=0)cout<<"{";
                f(q,y);
             if(y!=1&&x2!=0)cout<<"}";
        }
        
}
void solve(){
    ll p,q;
    cin>>p>>q;
    cout<<p<<"/"<<q<<" = ";
    f(p,q);
    cout<<endl;
}
int main() {
   int T;
   cin>>T;
   while(T--)
   {
    solve();
   }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-01 21:45
中北大学 golang
孤蓝长空:请你说一下为什么你用websocket而不是http,请你说一下什么是rpc,为什么用rpc,你的rpc的传输协议是JSON,xml还是什么 请你描述一下你的鉴权流程(完整的) 我问的是第二个项目,随便问的哈哈哈
开工第一帖
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务