You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

APL技术问询:如何找出900-1000间数乘积中的回文数

解决900-1000两两乘积回文数的APL实现问题

你的代码最后一行返回0,是因为仅生成了判断回文的布尔矩阵,未提取对应乘积值,且直接执行布尔矩阵时APL会返回其逻辑聚合值(而非目标回文数集合)。以下是修正后的实现:

步骤1:生成目标数字集合

new_set ← 900 + ⍳100  // 生成900到1000的整数集合

步骤2:计算乘积并筛选回文数

// 计算所有两两乘积,转为字符串后判断回文,提取符合条件的乘积
palindrome_products ← {⍵≡⌽⍵}¨⍕¨⊢ / new_set ∘.× new_set

代码解释

  • new_set ∘.× new_set:生成900到1000之间所有数的两两乘积二维数组
  • ⍕¨:将每个乘积转换为字符串,得到二维字符串数组
  • {⍵≡⌽⍵}¨:对每个字符串执行回文判断,返回与乘积数组同维度的布尔矩阵
  • /:将二维乘积数组展平,并筛选出布尔矩阵中对应为1(真)的乘积值,最终得到所有回文乘积的集合

可选:获取回文乘积对应的乘数对

如果需要同时得到每个回文乘积对应的两个乘数,可使用以下代码:

// 组合乘数对与乘积
factor_product_pairs ← ,⊂[1] (new_set ∘., new_set),⊂new_set ∘.× new_set
// 筛选回文对应的乘数对与乘积
palindrome_pairs ← {⍵[3]≡⌽⍵[3]}¨⍕¨⊢ / factor_product_pairs

内容的提问来源于stack exchange,提问作者ArbIn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:30:59