25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值

简介: 25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值

以下代码参考网上资料(需要好好研究研究)。。。

#include<iostream>
using namespace std;
 
int main()
{
    int m,n,i,j=1,k=0,a[20],x,y;
    cout<<"请输入一个整数:";
    cin>>m;//输入的数为m
    y=m;//先将m赋值给y,将原始输入的数保护起来
    for(i=1;;i++)//中间的判断条件可以不要,就变成了死循环
    {
        j*=10;
        n=m/j;
        a[i]=n;
        k++;//用于记录有几位数
        
        if(n<1)//循环退出条件
        {
            break;
        }
    }
    int b=1,c,d=0;
    for(i=1;i<=k;i++)
    {
        b*=10;
        //cout<<b<<endl;
    }
    cout<<"你输入的数字各位分别是:";
    for(i=k;i>0;i--)
    {
        b=b/10;
        c=m/b;
        m=m-c*b;
        d+=c;
        cout<<c<<"  ";
    }
    cout<<endl;
    cout<<"你输入的数字是"<<k<<"位数\n";
    cout<<"各位上的数字之和为:"<<d<<endl;
    x=0;
    do{
        x=x*10+y%10;
        y=y/10;
    }while(y!=0);
    cout<<"逆序输出为:"<<x;
    cout<<endl;
 
    return 0;
}

我的做法:

#include<iostream>
using namespace std;
 
int main()
{
    int n,p,q=1;
    int k=0,temp=1;
    int sum=0,sum1=0;
    int a[20];
    cout<<"please input an number : "<<endl;
    cin>>n;
 
    for(int i=0;i<20;i++)
    {
        a[i]=0;
    }
    for(int j=0;j<=20;j++)//这里错得刻骨铭心。。。把条件写成j<=n了
    {
        if(n!=0)
        {
            p=n%10;
            a[j]=p;
            cout<<p<<" "<<endl;
            n=n/10;
            k++;
        }
    }
    for(int k=0;k<=20;k++)
    {
        sum+=a[k];
    }
    for(int m=1;m<=k;m++)
    {
        temp*=10;
        a[k-m]*=(temp/10);
        sum1+=a[k-m];
    }
    cout<<"它是"<<k<<"位数"<<endl;
    cout<<"它各位数字之和为:"<<sum<<endl;
    cout<<"其逆值为:"<<sum1;
 
    return 0;
}
目录
相关文章
|
1月前
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
31 0
给定一个正整数N,将其表示为数字1,3,7,15相加的形式输出。请编码找出使上述数字出现的总次数最少(每个数字可以重复使用)的组合。
给定一个正整数N,将其表示为数字1,3,7,15相加的形式输出。请编码找出使上述数字出现的总次数最少(每个数字可以重复使用)的组合。
|
28天前
|
C++
写一个函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空一个空格。如输入1990,输出1 9 9 0
这是一个C++代码片段,实现了一个函数`Print`,用于倒序打印整数。代码在`main`函数中读取用户输入的整数`n`,然后调用`Print`函数输出。示例运行结果显示了一张图片,显示了代码执行后的输出,但具体内容未提供。
22 0
|
28天前
|
C++
写一个函数,输入一个四位数字,要求输出这四位数字字符,但是每两个数字间空一个字符,如输入1990,输出1 9 9 0
这是一个C++代码段,用于打印整数的逆序。程序从用户输入接收一个整数,然后通过递归方法将其逆序输出。示例结果展示了一张图片,但因摘要限制无法显示。代码功能是将数字如12345逆序输出为54321。
20 0
|
1月前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
60 3
|
10月前
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
56 0
从键盘上输入m与n(m<=n且m>3),输出从m到n之间的所有素数(以逗号间隔,即输出一个整数后再输出一个逗号)。
从键盘上输入m与n(m<=n且m>3),输出从m到n之间的所有素数(以逗号间隔,即输出一个整数后再输出一个逗号)。
140 0
输出整数各位数字
输出整数各位数字
57 0
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
112 0
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
可多次输入,一个整数(2--20),表示输出的行数,也表示X的反斜线和正斜线的长度...输出时,每行输出,都为X
可多次输入,一个整数(2--20),表示输出的行数,也表示X的反斜线和正斜线的长度...输出时,每行输出,都为X
88 0
可多次输入,一个整数(2--20),表示输出的行数,也表示X的反斜线和正斜线的长度...输出时,每行输出,都为X