Rockiswu 2021-08-20 18:59 采纳率: 87.9%
浏览 54
已结题

乘法与除法c++编程

蒜头君很喜欢数字游戏。他可以对一个整数 x 进行两种操作:

除以 3(如果 x 是 3 的倍数)。

乘 2。

蒜头君对一个整数 x 依次进行了 n-1 次操作后,得到了一个长为 n 的序列。但是他好像不小心把这个数组打乱了然后他自己也不记得之前他都做了什么。

于是他找到了你,希望你能够帮他恢复他的数列。

输入格式
输入的第一行包含一个整数 n(2≤n≤50)。

输入的第二行是一个长度为 n 的数组,即蒜头君在进行操作后得到的数列不小心打乱了之后的结果

  • 写回答

1条回答 默认 最新

  • 诺er~ 2021-08-20 19:13
    关注

    思路:如果这个数字里面包含有质因子 3,那么按照质因子 3 的个数排序,否则按照数字大小排序。

    //手打代码
    #include<bits/stdc++.h>
    using namespace std;
    struct st
    {
        long long num;
        int trin;
    }a[60];
    int tri(long long num)
    {
        int s=0;
        while(num%3==0) 
        {
            s++;
            num/=3;
        }
        return s;
    }
    bool cmp(st x,st y)
    {
        if(x.trin!=y.trin) return x.trin>y.trin;
        return x.num<y.num;
    }
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++) 
        {
            cin>>a[i].num;
            a[i].trin=tri(a[i].num);
        }
        sort(a+1,a+n+1,cmp);
        for(int i=1;i<=n;i++) cout<<a[i].num<<" ";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月28日
  • 已采纳回答 8月20日
  • 创建了问题 8月20日

悬赏问题

  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM
  • ¥15 Converting circular structure to JSON
  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader
  • ¥45 谷歌浏览器出现开发者工具无法显示已创建的,但您可以调试已部署的代码。 状态代码 404, net::ERR HTTP RESPONSE CODE FAILURE
  • ¥15 如何解决蓝牙通话音频突发失真问题
  • ¥15 安装opengauss数据库报错
  • ¥15 【急】在线问答CNC雕刻机的电子电路与编程