C/C++教程

P00604:数位和(c++代码)

本文主要是介绍P00604:数位和(c++代码),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 题目
    • 题目描述
    • 格式
      • 输入
      • 输出
    • 样例
      • 输入数据 1
      • 输出数据 1
  • 分析
    • 求最小值
    • 求最大值
  • CODE(c++)


题目

题目描述

给出一个有 N 位的整数,并且各位数的和也是 N,求满足条件的最小、最大的 N 位的整数分别是多少。

格式

输入

共一行有一个正整数 N。1<=N<=1000

输出

输出共两行,第一行为最小的 N 位整数,第二行为最大的 N 位整数

样例

输入数据 1

6

输出数据 1

100005
600000

分析

求最小值

根据小学比大小知识,可得知:让这个数首位为1时,这个数最小,然后从末位开始赋值,赋值得越大,这个数越大。

求最大值

同求最小值,从首位开始,赋值得越大,这个数越大。


CODE(c++)

#include<bits/stdc++.h>
using namespace std;
int n,sumx,sumd,x[1003],d[1003];
int main(){
scanf("%d",&n);
x[1]=1,sumx=n-1,sumd=n;
for(int i=n;i>=2;i--){
    if(sumx>9)
        x[i]=9,sumx-=9;
    else{
        x[i]=sumx;
        break;
    }
}
for(int i=1;i<=n;i++){
    if(sumd>9)
        d[i]=9,sumd-=9;
    else{
        d[i]=sumd;
        break;
    }
}
for(int i=1;i<=n;i++)printf("%d",x[i]);
printf("\n");
for(int i=1;i<=n;i++)printf("%d",d[i]);
    return 0;
}
这篇关于P00604:数位和(c++代码)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!