栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

在这个特殊的节日多陪陪你的电脑,hhh...

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在这个特殊的节日多陪陪你的电脑,hhh...

输入数字 n ,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3 ,则打印出 1、2、3 一直到最大的 3 位数999 。

用返回一个整数列表来代替打印n 为正整数

OJ链接【牛客网题号: JZ17 打印从1到最大的n位数】

示例:
输入:1
返回值:[1,2,3,4,5,6,7,8,9]

int* printNumbers(int n, int* returnSize )

{

}

如果没有上述输入提供的接口,我们可以不用动态申请空间的方法!

首先要清楚n位数中最大的数字,实际上就是 10^n - 1

1位数: 10^1 - 1
2位数: 10^2 - 1
3位数: 10^3 - 1
...(调用pow函数:pow(10,n)-1)

实际代码如下:

#include
#include
int main()
{
    int n,i=0;
    scanf("%d",&n);
    for(i=1;i<=(pow(10,n)-1);i++)
    {
        if(i==(pow(10,n)-1)) 
        {
            printf("%d",i);
        }
        else
        	printf("%d,",i);
    }
    return 0;
}

运行情况:

 由于此代码较为简单,所以在此不再详细描述。


进阶版:按照牛客网上提供了的接口,实现这个接口完成题目要求

这个清楚后动态申请空间,将数值填入就可以了,需要注意的是数组下标从0开始,而数值从1开始

int* printNumbers(int n, int* returnSize )
{
  *returnSize = pow(10, n) - 1; //确定最大的数字
  int *arr = (int *)malloc(sizeof(int)*(*returnSize));//申请足够大小的空间
  for (int i = 0; i < *returnSize; i++)
  {
    arr[i] = i+1;//下标从0开始,而数值从1开始
  }
  return arr;
}

1946年2月14日,世界上第一台通用计算机在美国宾夕法尼亚大学诞生,请在这个特殊的节日多陪陪你的电脑,哈哈哈哈哈哈哈哈!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738088.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号