分离非负整数

(1 )分离一个三位非负整数

设x为一个整型变量,从键盘输入x的值( 三位,例如567 ),   然后将x的百、十、个位数分离出来,分别保存到整型变量a、b、c中,   然后将a、b、c进行输出。

/*
   设x为一个整型变量,从键盘输入x的值( 三位,例如567 ),
   然后将x的百、十、个位数分离出来,分别保存到整型变量a、b、c中,
   然后将a、b、c进行输出。
*/
#include <iostream>
using namespace std;
int main()
{
 int x; //x为整型变量
 cout<<"请输入一个三位整数:";
 cin>>x; //从键盘输入x
 int a,b,c; //a存放x的百位,b存放x的十位,c存放x的个位
 a=x/100;
 b=x%100/10;
 c=x%10;
 cout<<x<<" 的百位、十位、个位分别为:"<<a<<" "<<b<<" "<<c<<endl;
 return 0;
}

(2)分离一个任意长度的非负整数(从低位到高位--用循环实现)

/*
x为任意整数,从键盘输入一个整数,由低位到高位输出x的各位数。
方法:用循环实现
*/
#include <iostream>
using namespace std;
int main()
{
    int x;    //x为整型变量
    cout<<"请输入一个非负整数:";
    cin>>x;   //从键盘输入x
    while(x<0)  //循环输入直到输入的x>=0
    { 
      cout<<"您输入的数是负数,请重新输入:";
      cin>>x; 
    }
    cout<<"从低位到高位依次输出为:";
    if(x==0)
        cout<<x;
    else
    {
        while(x>0)  //从低位到高位循环输出
        {
            cout<<x%10<<" ";        
             x=x/10;
        }
    }
    cout<<endl;
    return 0;
}

(3)分离一个任意长度的非负整数(从高位到低位--用循环实现)

/*
x为任意整数,从键盘输入一个整数,由高位到低位输出x的各位数。
方法:用循环实现
方法中要用到指数函数double pow(double x,double y);
 函数结果是求以x为底、以y为指数的结果,注意结果为double类型
*/
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int x;    //x为整型变量
    int a;
    cout<<"请输入一个非负整数:";
    cin>>x;   //从键盘输入x
    while(x<0)  //循环输入直到输入的x>=0
    { 
      cout<<"您输入的数是负数,请重新输入:";
      cin>>x; 
    }
    a=x;
    int length=1; //length记录输入的非负整数的长度
    while((a/10)>0)  //从低位到高位循环输出
    {
            length++;        
             a=a/10;
    }
    cout<<"输入的非负整数长度为:"<<length<<endl;
    length--;
    cout<<"从高位到低位依次输出为:";
    if(x==0)
        cout<<x;
    else
    {
        while(x>0)  //从低位到高位循环输出
        {
            a=(int)pow(10,length--); // pow(10,length)结果是double类型
            cout<<x/a<<" ";        
             x=x%a;
        }
    }
    cout<<endl;
    return 0;
}

原文地址:https://www.cnblogs.com/beautiful-code/p/5239497.html