判断统计1到N中数字3个数的C++代码将`while (i != 0)`改为`while (abs(i))`后执行结果是否相同

hm338486 判断题 共 个子题

下面的C++代码段用于计算1到N之间且包含N的所有数字中含有的3的个数,如1到40含有14个3,而1到20则只含有2个3。如果将代码中的 while (i != 0) 改为 while (abs(i)),则执行结果相同。请判断该说法是否正确。

cout << "请输入正整数N:";
cin >> N;
cnt = 0; // 保存3的个数
for (k = 1; k < N + 1; k++){
  i = k;
  while (i != 0){
    if (i % 10 == 3)
      cnt += 1;
    i /= 10;
  }
}
cout << cnt;
A

正确

B

错误

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧