两数相乘

今天看到个SW测试题目,看到同事们用Java写,我也写了个SQL的,题如下;

 


-----------------------------------------------------------------

由两个正整数相乘组成序列例如420两个数通过相乘可得到的结果按由小到大的顺序排列则得到 4, 4*4, 20, 4*4*4, 4*20... 序列再例如57两个数则会得到5, 7, 5*5, 5*7, ...序列假如2100两个数字序列结果为2, 22, 23, 24, 25, 26, 100, 27, 2*100, 28, ... 序列中第十个小的数是28=256

相乘所得序列会出现重复值例如24两个数时其序列为2, 22, 4, 2*4, 23, ... 但实际上22 4是相同而且2*4 2也相同这种情况只视为一个值这种情况序列的值应该是2, 4, 8, 16, 32, ...去掉重复的值序列中第五个小的值是32而非8

编写程序实现由两个正整数相乘所得序列中找出第十个小的数第十个小的数不应该溢出整数型范围.(不超过231-1)


-----------------------------------------------------------------







WITH T AS (
SELECT 2 N FROM DUAL UNION
SELECT 7 N FROM DUAL
)
,T1 (A,N) AS (
SELECT 1,N FROM T
UNION ALL
SELECT T1.A+1,T1.N*T.N
FROM T1,T
WHERE T1.A+1 < 10
)
SELECT DISTINCT N
FROM (
SELECT  T1.N ,DENSE_RANK()OVER(ORDER BY T1.N) RN
FROM T1
)
WHERE RN <= 10
;

         N
----------
         2
         4
         7
         8
        14
        16
        28
        32
        49
        56
10 rows selected

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13696961/viewspace-2107372/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13696961/viewspace-2107372/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Matlab中,有两种方式可以实现矩阵相乘。第一种是矩阵乘法,表示为A*B。要求左矩阵的行数与右矩阵的列数相等,即MxN维矩阵乘以NxM维矩阵。按照矩阵相乘规则计算结果。 另一种是矩阵点乘,表示为A.*B。要求两矩阵维数相等,即MxN维矩阵乘以MxN维矩阵。矩阵对应位置元素相乘输出。 例如,如果我们有两个矩阵A和B: A = [1 2 3; 4 5 6; 7 8 9]; B = [2 3 4; 1 2 3; 0 1 2]; 那么A*B的结果是: 2 15 40 9 28 45 16 41 66 而A.*B的结果是: 2 6 12 4 10 18 0 8 18 除了矩阵相乘和矩阵点乘之外,还可以通过A*inv(B)实现矩阵除法,表示为A除以B。这要求两矩阵维数相等,即MxN维矩阵除以MxN维矩阵。矩阵对应位置元素相除输出,表示A矩阵对应元素除以B矩阵对应元素。 例如,如果我们有两个矩阵A和B: A = [1 2 3; 4 5 6; 7 8 9]; B = [2 3 4; 1 2 3; 1 2 3]; 那么A/inv(B)的结果是: 0.6 -0.8 -2 1.2 -0.6 -0.6667 1.8 -0.4 -0.3333 而A./B的结果是: 0.5 0.6667 0.75 4 2.5 2 7 4 3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [matlab中的乘除法](https://blog.csdn.net/weixin_43668420/article/details/116977322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值