关于正整数的一些练习

1. 输入一个正整数 n,输出其位数。

输入样例:123
输出样例:3

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 int n,count=0;
 cin>>n;
 while(n!=0)
 {
  n=n/10;
  count++;
 }
 cout<<count<<endl;
 } 

2. 输入一个正整数 n,从低位至高位输出 n 的各位数字。

输入样例:123
输出样例:3 2 1

#include<iostream>
#include<cmath>
using namespace std;
int main()
 {
  int n=0;
  cin>>n;
  while(n!=0)
  {
   cout<<n%10<<" ";
   n=n/10;
  }
 }

3. 输入一个正整数 n,从高位至低位输出 n 的各位数字。

输入样例:123
输出样例:1 2 3

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 int n,count,i=0;
 int a[10];
 cin>>n;
 while(n!=0)
 {
  a[i++]=n%10;
  n=n/10;
  count++;
 }
 for(int m=count;m>0;m--)
 {
  cout<<a[m-1]<<" ";
 }
}

4. 输入一个正整数 n,输出逆序后的整数的 2 倍。

输入样例:125
输出样例:1042 说明:125 逆序后为 521,2 倍则是 1042

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
  int n,count,i,sum,res=0;
  int a[10];
 cin>>n;
 while(n!=0)
 {
  a[i++]=n%10;
  n=n/10;
  count++;
 }
 for(int m=count;m>0;m--)
 {
  sum=sum+a[m-1]*pow(10,count--);
 }
 sum=sum/10;
 res=2*sum;
 cout<<res<<endl;
} 

5. 输入一个数,输出其素因子分解表达式。要求表达式中各个因子从小到大排序。

输入样例:
60
输出样例:

2*2*3*5
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 int n,m=0;
 int a[20];
 cin>>n;
 int i=2;
 while(n>=0)
 {
  
  if(n%i==0)
  {
   a[m++]=i;
   n=n/i;
  }
  else
  {
   i++;
  }
 }
 for(int k=0;k<m-2;k++)
 {
  cout<<a[k]<<"*";
 }
 cout<<a[m-2];
}
发布了102 篇原创文章 · 获赞 93 · 访问量 4968

猜你喜欢

转载自blog.csdn.net/huangziguang/article/details/104722146