java吧 关注:1,216,761贴子:12,668,384

大佬救命,跪求解题思路或代码

只看楼主收藏回复



IP属地:河南来自iPhone客户端1楼2023-08-25 18:26回复


    IP属地:河南来自iPhone客户端2楼2023-08-25 18:54
    回复
      直接拿数组/联合体搓一个不就了么


      IP属地:广西来自Android客户端3楼2023-08-25 19:10
      收起回复
        暴力打表。或者第一位每变一下需要24 第二位需要6 第三位需要2 然后逐层去算余数


        IP属地:河北来自Android客户端4楼2023-08-25 19:17
        回复


          IP属地:河南来自iPhone客户端5楼2023-08-27 13:19
          回复
            转换成字符串然后拆成单个的一个一个加一起?能实现但是太蠢了,有更好的实现方法麻烦戳我一下,谢谢。


            IP属地:广东来自Android客户端6楼2023-08-27 13:25
            收起回复
              请原谅我看不懂题目,这个四位数本身是什么,应该是四个分开的数字,还是一个十进制的四位数,然后求的又是什么,那些几进制只是约束这个四位数的十进制每位最大到多少,还是这根本不是个10进制的四位数?


              IP属地:广东来自iPhone客户端7楼2023-08-28 01:46
              收起回复
                第一位 n/(4*3*2)
                第二位(n%(4*3*2))/(3*2)
                第三位((n%(4*3*2))%(3*2))/2
                第四位((n%(4*3*2))%(3*2))%2


                IP属地:广东来自Android客户端8楼2023-08-28 02:42
                收起回复
                  意思求某个数在这种进制下的这种进制表示吗,不就是在正常转换进制的基础上,把每次取余改成2345,比如11表示0120。还说我理解错了


                  IP属地:江苏来自Android客户端9楼2023-08-28 02:44
                  收起回复
                    可以用递归试一下。


                    IP属地:福建来自Android客户端10楼2023-08-28 08:40
                    回复
                      感觉这就是个考递归的


                      IP属地:福建来自Android客户端11楼2023-08-28 08:40
                      回复
                        看不懂 我今年高二


                        IP属地:北京13楼2023-08-28 09:57
                        收起回复


                          IP属地:江苏14楼2023-08-28 11:15
                          回复
                            第N个数不是等于N-1嘛,那你直接通过这种进制把他的余数和商取出来拼接不就好了


                            IP属地:浙江15楼2023-08-28 11:17
                            回复
                              8楼基本是对的,直接算就可以了,我解释一下,第一位的值的权重是4*3*2,比如10000的n应该是4*3*2=24,因为没有第0个,所以还得+1(这个是8楼没考虑的地方),即10000对应的n是25。
                              那么第一位的取值应该是 (n-1)÷(4*3*2)的商a,余数放到后三位计算;
                              剩余n1 = n - a*4*3*2;
                              同理计算第二位应该是 (n1-1)÷ (3*2)的商b,
                              依次计算出四个数字。
                              /整除
                              第一位 (n-1)/(4*3*2)
                              第二位((n-1)%(4*3*2))/(3*2)
                              第三位(((n-1)%(4*3*2))%(3*2))/2
                              第四位(((n-1)%(4*3*2))%(3*2))%2
                              举例n=26,结果应该是1001,
                              25 / 24 = 1 余下 1
                              1 / 6 = 0 余下 1
                              1 / 2 = 0 余下 1
                              结果就是1001,复杂度o(1)


                              IP属地:江苏16楼2023-08-28 17:15
                              回复