一个数的倒数,c++
Inverse of a number, c++
我正在创建一个程序,该程序使用以下方法显示数字的倒数:
示例
:
123 ==> 3*10^2 + 2*10^1 + 1*10^1 = 321
但输出始终为0。有什么帮助吗?
#include <stdio.h>
int power(int a)
{
int i;
int x = 1;
for (i = 1; i = a; i++)
{
x = x * 10;
}
return x;
}
int inv(int b)
{
int z = b, j = 0, s = 0, y;
for (z = b; z = 0; z = z / 10)
{
for (y = z; y = 0; y = y / 10)
{
j++;
}
s = s + (z % 10)*power(j - 1);
}
return s;
}
int main()
{
printf("please enter a number"); int n;
scanf("%d", &n);
printf("%d", inv(n));
return 0;
}
您认为这两个for循环什么时候会继续
你认为他们什么时候会停止
(提示:你错了。)
在调试器中观察z和y的值。
for (z = b; z = 0; z = z / 10)
for (y = z; y = 0; y = y / 10)
您的for循环设置不正确。
for (z = b; z = 0; z = z / 10)
应该是:
for (z = b; z == 0; z = z / 10)
"z=0"是一个总是返回false的赋值。因此,您从未输入for循环,返回"s"的初始值0。
为什么不使用string
并反转它?当然,只有当你可以自由选择你的方法时,这才有效。
#include <iostream>
#include <string>
#include <algorithm>
int reverse(const int n)
{
std::string s = std::to_string(n);
std::reverse(s.begin(), s.end());
return std::stoi(s);
}
int main()
{
int number;
std::cin >> number;
std::cout << reverse(number) << std::endl;
return 0;
}
这里是反函数的定义,不需要任何power
函数。保持代码简短&简单
int inverse(int b)
{
int s=0;
while(b > 0)
{
s = s*10 + (b % 10);
b /= 10;
}
return s;
}
对于上面的查询,以下是C:中For循环的语法
for ( init; condition; increment ) {
statement(s);
}
相关文章:
- 如何找到数组中值倒数第二次出现的索引
- 如何打印第一个和最后一个元素的和,然后打印第二个和倒数第二个元素的总和,依此类推
- 使用索引与迭代器将向量迭代到倒数第二个元素
- 期望_DEATH的倒数是多少
- 如何获取列表中的倒数第二个元素
- 对于我扩展此程序来计算最高10x10矩阵的倒数的最简单方法是什么
- C++迭代到倒数第二个元素
- C++ 安全倒数到零"auto"整型
- 为什么我需要绑定姿势矩阵的倒数来计算动画
- 特征库:计算倒数时静态和动态大小矩阵之间的不同行为
- 连续计数,然后倒数
- 将倒数计时器添加到数学程序测验中
- 收藏中倒数第二的模板;reverse_iterator无法编译
- C++游戏倒数计时器
- 如何从multi_index_container获取倒数第二个元素
- x64上的快速平方根倒数
- 一个数的倒数,c++
- STL列表访问倒数第二个元素
- 如何在C++中找到向量中倒数第二个元素
- 快速 1/X 除法(倒数)