欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PTA 7-6 出租

程序员文章站 2022-06-08 15:53:46
...

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

PTA 7-6 出租

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

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

输入格式:

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

输出格式:

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

输入样例:

18013820100


输出样例:

int[] arr = newint[]{8,3,2,1,0};

int[] index = newint[]{3,0,4,3,1,0,2,4,3,4,4};



这道题很简单过程就不多说了,全在代码里。


//第一次写博客,写点心得.....
#include <iostream>
#include <algorithm>
using namespace std;
const int INF = 100;
char px[INF];
int tel[INF];
int tel1[INF];
bool cmp ( int a , int b ) {
    return a >b ;
}
int main()
{
    int k = 0 ;
    for ( int i = 0 ; i < 11 ; i ++ ) {
        char t ;
        scanf("%c" , &t) ;
        tel1[i]=t-'0';
        int flag = 0 ;
        for ( int j = 0 ; j < i ; j ++ ) {
            if ( t == px[j]) {
                flag = 1 ;
            } //把电话号码标记
        }
        if (!flag){
            px[k++]=t;//k是电话号码的数字的种类
        }//存下未被标记的号码
    }
    
    for ( int i = 0 ; i < k ; i ++ ) {
        tel[i]=px[i]-'0';//存下整个电话号码
    }
    sort(tel, tel+k, cmp);//对电话号码整体排序
    printf("int[] arr = new int[]{");
    for  (int i = 0 ; i < k ; i ++ ) {
        printf("%d",tel[i]);
        if ( i < k - 1 ) {
            printf(",");
        }
        else{
            printf("};\n");
        }//符号输出
    }
    int cs[20];
    for (int i = 0 ; i< 11 ; i ++ ) {
        for (int j = 0 ; j < k ; j ++ ) {
            if( tel[j]== tel1[i]){
                cs[i]=j ;//j是上面的序号
//                比如  8  3  2  1  0
//                3 0 4 3 1 0 2 4 3 4 4
//                cs[0]=3 , tel[3]=1
//                cs[1]=0 , tel[0]=8
//                cs[2]=4 , tel[4]=1
//                ...
                break;
            }
        }
    }
    printf("int[] index = new int[]{");
    for  (int i = 0 ; i< 11 ; i ++ ) {
        printf("%d" , cs[i]);//输出下面序列的值
        if( i < 10 ) {
            printf(",");
        }
        else{
            printf("};\n");
        }
    }
    return  0;
}
结束。PTA 7-6 出租

相关标签: 新手