您的位置:首页 > 其它

求正整数的位数,依次输出,逆序打印

2017-07-11 19:30 281 查看
#include<stdio.h>
#include<stack>
#include<iostream>
using namespace std;

//1、求正整数的位数,2、分别输出每一位,3、逆序值打印
//对于正整数来说,一般是从低位开始得到,如果需要输出,则特点是先进后出,可以使用栈
void Count(int data,stack<int> &s)
{
do
{
int tmp = data % 10;  //依次得到低位数字
s.push(tmp);          //放入栈中
data /= 10;
}while(data != 0);
}

void Reverse(int data,stack<int> &s) //输出数字 并得到逆序值
{
cout<<"每一位分别是:";
int reverse = 0;
int i=1;
while(!s.empty())
{
reverse += s.top()*i;
cout<<s.top()<<" ";
s.pop();
i*=10;
}
cout<<endl;
cout<<"逆置结果是:"<<reverse<<endl;
}

int main()
{
int data = 0;
cin >> data;
stack<int> s;
Count(data,s);
cout<<data<<"的位数是:"<<s.size()<<endl;  //栈的大小就是它的位数。
Reverse(data,s);
cout<<endl;

return 0;
}
总结:库函数是真心好用,要懂得利用起来哦~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐