PTA L1-027 出租

news2024/9/27 19:25:10

L1-027 出租(20分)

下面是新浪微博上曾经很火的一张图:

一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1index[1]=0 对应 arr[0]=8index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100

本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。

输入格式:

输入在一行中给出一个由11位数字组成的手机号码。

输出格式:

为输入的号码生成代码的前两行,其中arr中的数字必须按递减顺序给出。

输入样例:

18013820100

输出样例:

int[] arr = new int[]{8,3,2,1,0};
int[] index = new int[]{3,0,4,3,1,0,2,4,3,4,4};

题解:

#include <stdio.h>

int main()
{
    char phone[20] = { '\0' };
    scanf("%s", phone);
    int phone_num[11]; // 存储电话中的数字,不重复
    for (int i = 0; i < 11; i++)
    {
        phone_num[i] = -1; // 初始化
    }
    int c_j = 0; // 用来标记下标
    for (int i = 0; i < 11; i++)
    {
        int flag = 0; // 标志位,用来寻找前面是否重复
        for (int j = 0; j < 11; j++)
        {
            if (phone_num[j] == (phone[i] - '0'))
            {
                flag = 1;
                break;
            }
        }
        if (!flag)
        {
            phone_num[c_j] = phone[i] - '0';
            c_j++;
        }
    }
    // 冒泡排序
    for (int i = 0; i < c_j - 1; i++)
    {
        for (int j = 0; j < c_j - i - 1; j++)
        {
            int tmp = 0;
            if (phone_num[j] < phone_num[j + 1])
            {
                tmp = phone_num[j];
                phone_num[j] = phone_num[j + 1];
                phone_num[j + 1] = tmp;
            }
        }
    }

    int index[20] = { 0 };
    for (int i = 0; i < 20; i++)
    {
        index[i] = -1; // 初始化
    }
    for (int i = 0; i < 11; i++)
    {
        for (int j = 0; j < c_j; j++)
        {
            if (phone[i] - '0' == phone_num[j])
            {
                index[i] = j;
                break;
            }
        }
    }

    // 输出第一行
    printf("int[] arr = new int[]");
    for(int i = 0; i < c_j; i++)
    {
        if(0 == i)
            printf("{");
        printf("%d",phone_num[i]);
        if(i != c_j - 1)
            printf(",");
        if(i == c_j - 1)
            printf("};");
    }
    printf("\n");

    // 输出第二行
    printf("int[] index = new int[]");
    for(int i = 0; i < 11; i++)
    {
        if(0 == i)
            printf("{");
        printf("%d",index[i]);
        if(i != 10)
            printf(",");
        if(i == 10)
            printf("};");
    }
    printf("\n");

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这四种人不能合作做生意

合伙创业千万不要和这四种人合伙&#xff0c;不然公司做大了都不是你的&#xff01; 一、不愿出钱的人&#xff0c;不愿出钱就不会有决心。公司一旦有风吹草动&#xff0c;最先跑路的都是没有出钱的。 二、不愿付出时间的人&#xff0c;想用业余时间参与&#xff0c;不愿全身心…

Unity编辑器扩展之Hierarchy面板扩展

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity编辑器扩展之Hierarchy面板扩展 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&#xff…

css-functions-图形函数

概述 本文会讨论和图形函数有关的 5 个函数,分别是:inset、circle、ellipse、polygon和path。这个 5 个图形函数也对应着相应的<basic-shape>。 <basic-shape>是一种表现基础图形的 CSS 数据类型,作用于clip-path或shape-outside属性中;而其值是由图形函数获…

sfud移植

sfud移植 首先看readme文档 文件结构 inc文件夹&#xff1a;各种头文件&#xff0c;注意flash_def和cfg头文件 port文件夹&#xff1a;接口文件 src文件夹&#xff1a;代码源文件 移植 基础&#xff1a;你的SPI没问题&#xff0c;用普通工程可以正常操作Flash 首先打开f…

cloudways相关

服务器优惠链接&#xff1a; https://www.cloudways.com/en/?id1081165 cloudways 后台清缓存位置&#xff1a; 网站迁移到cloudways&#xff08;用cloudways的自动迁移插件&#xff09;&#xff1a; 不管原网站是不是用的cloudways主机&#xff0c;都可以用这个方法。 1…

【React】react项目安装tailwindcss

创建React项目 首先,如果您还没有React项目,可以使用以下命令创建一个新项目: npx create-react-app my-tailwind-app cd my-tailwind-app安装Tailwind CSS 接下来,按照以下步骤安装Tailwind CSS: 安装必要的依赖: npm install -D tailwindcss postcss autoprefixer初始化…

Kubernetes 1.31 新功能: 细粒度补充组控制

这篇文章讨论了 Kubernetes 1.31 中的一个新特性&#xff0c;用于改善 Pod 中容器的补充组&#xff08;Fine-grained SupplementalGroups control&#xff09;处理。 动机&#xff1a;在容器镜像中的 /etc/group 定义的隐式组成员身份 尽管这种行为可能并不受许多 Kubernetes…

Redis安装+常用命令合集大全+Redis Desktop Manager

文章目录 一&#xff1a;Redis 简介二&#xff1a;安装和配置Redis第一步&#xff1a;下载Redis第二步&#xff1a;解压Redis第三步&#xff1a;配置Redis第四步&#xff1a;启动Redis服务器第五步&#xff1a;验证Redis安装第六步&#xff1a;设置Redis为全局命令 三&#xff…

不同品类商标一样属于侵权吗!

商标分类有45类&#xff0c;有网友问普推知产商标老杨&#xff0c;不同品类商标一样属于侵权吗&#xff0c;这个要从多个角度来分析&#xff0c;不同品类商标是相同一样的&#xff0c;这样的基本不侵权的。 在注册申请商标是会经常遇到别人在某类别注册&#xff0c;但是有一些类…

[Meachines] [Insane] Bankrobber XSS-MDOG+SQLI+XSRF+Local-RCE+Bankv2转账模拟应用缓冲区溢出

信息收集 IP AddressOpening Ports10.10.10.154TCP:80&#xff0c;443&#xff0c;445&#xff0c;3306 $ nmap -p- 10.10.10.154 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 80/tcp open http …

各个击破:NetXpert XG2帮您解决“布线安装与维护”难题

在传输大量数据时&#xff0c;光纤变得越来越重要&#xff0c;而铜缆在未来也将继续发挥重要作用&#xff0c;因此我们不仅要比较两种类型布线的优缺点&#xff0c;还要探究光纤传输中的错误来源。 测试光缆传输损耗的准确性对于故障排除至关重要&#xff0c;特别是在光纤情况下…

hadoop技术

历史版本 HA&#xff1a;高可用 技术框架

[线程]线程不安全问题 --- 死锁

文章目录 一. 引出死锁二. 可重用锁三. 死锁的三种典型场景四. 死锁产生的四个必要条件(面试题)1. 锁具有互斥特性2. 锁不可抢占(不可被剥夺)3. 请求和保持4. 循环等待 五. 避免死锁问题 一. 引出死锁 class Counter{private int count;public void add(){synchronized(this){…

深度学习语义分割篇——DeeplabV3原理详解+源码实战

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

域内安全:委派攻击

目录 域委派 非約束性委派攻击&#xff1a; 主动访问&#xff1a; 被动访问&#xff08;利用打印机漏洞&#xff09; 约束性委派攻击&#xff1a; 域委派 域委派是指将域内用户的权限委派给服务账户&#xff0c;使得服务账号能够以用户的权限在域内展开活动。 委派是域中…

机器学习——决策树模型

决策树原理 算法概述 从根节点开始一步步走到叶子节点&#xff08;决策&#xff09; 所有数据最终都会落到叶子节点&#xff0c;既可以做分类也可以做回归 例如上例&#xff0c;输入一个数据后&#xff0c;先判断他的年龄&#xff0c;然后再判断性别 在决策树中&#xff0c…

day45.动态规划

1035.不相交的线: 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在&#xff0c;可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#xff0c;这些直线需要同时满足&#xff1a; nums1[i] nums2[j] 且绘制的直线不与任何其他连线&#xff08;非水…

基站定位系统的创新应用:企业管理的新利器

在现代企业的管理中&#xff0c;基站定位系统已经成为不可或缺的技术手段。通过这一系统&#xff0c;企业能够实时掌握物资、人员的位置和状态&#xff0c;提升管理效率和安全性。常达智能物联凭借深厚的技术积累和丰富的项目经验&#xff0c;为各类企业提供了创新的基站定位系…

如何使用ChatGPT,提示词篇之【编程代码】

一、 ChatGPT可以做什么&#xff1f; ChatGPT能做的事情非常多&#xff01;它不仅仅是一个对话AI。以下是一些主要功能&#xff1a; 1. 回答问题&#xff1a;无论是学术问题、技术问题&#xff0c;还是生活琐事&#xff0c;ChatGPT都能提供帮助。 2. 写作助手&#xff1a;可以…

Angular17(3):Angular项目中引入iconfont

在Angular项目中引入Iconfont&#xff08;图标字体&#xff09;是一个常见的需求&#xff0c;用于在应用中添加丰富的图标资源。 Iconfont-阿里巴巴矢量图标库 1、点击进入官网&#xff0c;注册并登录 2、登陆成功后&#xff0c;首页的 资源管理 > 我的项目 点击进入 3、…