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

如何用递归打印12的乘法表到10倍,运行后输出到12倍如何解决

问题根源

  • 你当前的递归逻辑是:传入参数n代表要打印到12的n倍,你在main里调用了table(12),自然会输出到12×12=144。
  • 你添加if(n==12) { return; }无效的原因是:如果把这个判断放在函数入口,第一次调用table(12)就会直接返回,没有任何输出;如果放在递归调用之后,此时递归已经执行完成,判断逻辑不会起到截断效果。

修复方案

方案1:修改main函数的调用参数

直接把main里的调用改为table(10)即可,刚好匹配你要输出到12×10=120的需求,修改后完整代码如下:

// 用递归打印12的乘法表到12×10=120
#include<iostream>
using namespace std;
void table(int n)
{
    if(n==1)
    {
        cout<<"12×1="<<12<<"\n";
        return;
    }
   
    table(n-1);
    cout<<"12×"<<n<<"="<<n*12<<"\n";
}
int main(void)
{
    // 传入10表示打印到12的10倍
    table(10);
    return 0;
}

方案2:固定乘法表上限,修改终止条件

如果你希望保持table(12)的调用方式,可以把终止条件设置为n>10就直接返回,修改后代码如下:

// 用递归打印12的乘法表到12×10=120
#include<iostream>
using namespace std;
void table(int n)
{
    // 超过10倍直接返回,不再往下执行
    if(n>10)
        return;
    if(n==1)
    {
        cout<<"12×1="<<12<<"\n";
        return;
    }
   
    table(n-1);
    cout<<"12×"<<n<<"="<<n*12<<"\n";
}
int main(void)
{
    table(12);
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:06:03