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

如何仅用一个整数与putchar()输出00-99的两位数字?

解决方案:单整数实现00-99两位数字输出

嘿,这个约束条件挺有意思的!既然只能用一个整数、putchar()和stdio.h,我们可以利用整数的除法和取模运算来拆分十位和个位,结合ASCII码规则轻松实现需求。

实现代码

#include <stdio.h>

int main(void) {
    int num;
    for (num = 0; num < 100; num++) {
        // 输出十位数字:整数除法取十位,转ASCII字符
        putchar((num / 10) + '0');
        // 输出个位数字:取模运算取个位,转ASCII字符
        putchar((num % 10) + '0');
        // 输出分隔空格(若需避免最后一个空格,可加判断num != 99)
        putchar(' ');
    }
    return 0;
}

关键逻辑拆解

  • 全程只用一个整数变量num,从0循环到99,覆盖所有两位数字的组合。
  • num / 10:利用整数除法的截断特性,直接提取十位数字(比如12 / 10 = 1,5 / 10 = 0),加上'0'(对应ASCII码0x30)就转换成了字符形式的数字。
  • num % 10:通过取模运算提取个位数字(比如12 % 10 = 2,5 % 10 = 5),同样加'0'转成字符输出。
  • 所有输出操作仅依赖putchar()函数,完全符合题目限制。

如果不想最后一个数字后多一个空格,只要在输出空格前加个判断:if (num != 99) putchar(' ');就行,核心逻辑不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:41:23