C++例题:输入一个整数n(1<=n<=1000),请判断1-n的数字里面,出现了多少次9

统计9的个数题目描述输入一个整数n(1<=n<=1000),请判断1-n的数字里面,出现了多少次9。输入一个正整数n(1<=n<=1000)。输出 1到n中,9的个数。样例输入20样例输出2样例解释即整数1-20中,只有9和19中各有一个数字9,因此总共有2个9。#include<iostream>using namespace std;int main(){ int n, i,ans = 0;...
摘要由CSDN通过智能技术生成

统计9的个数

题目描述

输入一个整数n(1<=n<=1000),请判断1-n的数字里面,出现了多少次9。

输入

一个正整数n(1<=n<=1000)。

输出

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个可能的 C++ 实现: ```cpp #include <iostream> #include <algorithm> #include <sstream> std::string reverse(std::string s) { std::reverse(s.begin(), s.end()); return s; } std::string to_binary(int n) { std::stringstream ss; while (n > 0) { ss << n % 2; n /= 2; } return reverse(ss.str()); } std::string to_octal(int n) { std::stringstream ss; while (n > 0) { ss << n % 8; n /= 8; } return reverse(ss.str()); } std::string to_hexadecimal(int n) { std::stringstream ss; while (n > 0) { int digit = n % 16; if (digit < 10) { ss << digit; } else { ss << char('A' + digit - 10); } n /= 16; } return reverse(ss.str()); } int main() { int n; std::cin >> n; std::cout << reverse(to_binary(n)) << ' '; std::cout << reverse(to_octal(n)) << ' '; std::cout << reverse(to_hexadecimal(n)) << '\n'; return 0; } ``` 首先,我们定义了一个 `reverse` 函数,用于将字符串逆序。这个函数在后面的被多使用。 然后,我们分别实现了三个转换函数 `to_binary`、`to_octal` 和 `to_hexadecimal`。这些函数使用了一个 `stringstream` 对象来构造转换后的字符串。对于二进制和八进制,我们采用和上一个例题相同的方法,除以 2 或者 8 取余,然后将余数添加到字符串。对于十六进制,我们需要特判一下余数,如果是小于 10 的数字,直接添加到字符串;否则,需要将其转换成 A~F 一个字符。 最后,在 `main` 函数,我们读入一个整数,然后分别调用三个转换函数,将结果逆序出。注意,每个转换结果之间需要加上一个空格。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值