给定一个整数,要求从个位开始分离出它的每一位数字。
从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个英文逗号分开。
#include <iostream>
using namespace std;
int main()
{
int i = 1234;
cout << i % 10;
while (i / 10) {
i /= 10;
cout << "," << i % 10;
}
return 0;
}
输出:
4,3,2,1
代码写的不是很规范…
int rank_num(int num)
{
int a=num/10;
int b=num%10;
int c;
int d=1;
if(a>10)
{
c=a=rank_num(a);
for(;;)
{
if(b>(a%10)&&a!=0)
{
a=a/10;
}
else
{
if(a==0)
{
return (b*d)+c;
}
else if(a==c)
{
return (c*d*10)+b;
}
else
{
return (a*d*10)+(b*d)+(c%d);
}
}
d=d*10;
}
}
else
{
return a>b?(num):(b*10)+a;
}
}
我可以使用字符串操作和循环来解决这个问题。可以按照以下步骤进行:
下面是具体的代码实现:
def separate_digits(num):
num_str = str(num)
result = ""
for i in range(len(num_str)):
digit = num_str[i]
result += digit
if i != len(num_str) - 1:
result += ","
return result
# 测试
num = 1234567890
separated = separate_digits(num)
print(separated)
运行以上代码,将会输出 "0,9,8,7,6,5,4,3,2,1",即按照从个位到最高位的顺序分离出整数的每一位数字,并用逗号进行分隔。
通过以上解决方案,可以实现按照从个位到最高位的顺序分离出一个整数的每一位数字,并将其以逗号分隔开。
有用希望可以点个采纳:
#include <iostream>
#include <vector>
std::vector<int> separateDigits(int num) {
std::vector<int> digits;
// 处理特殊情况
if (num == 0) {
digits.push_back(0);
return digits;
}
// 提取每一位数字
while (num != 0) {
int digit = num % 10; // 取个位数字
digits.push_back(digit); // 将数字添加到向量中
num /= 10; // 去掉最后一位数字
}
return digits;
}
int main() {
int num;
std::cout << "请输入一个整数: ";
std::cin >> num;
std::vector<int> digits = separateDigits(num);
// 打印每一位数字
std::cout << "分离出的每一位数字: ";
for (int i = digits.size()-1; i >= 0; i--) {
std::cout << digits[i];
if (i != 0) {
std::cout << ", ";
}
}
std::cout << std::endl;
return 0;
}