猜数字——C++版 && JAVA版

题目描述

代码
初级代码a~s测试

#include <iostream>
using namespace std;
int main(int argc,const char *argv[]){
    char arr[19];
    for(int i=0;i<19;i++){
        arr[i]='a'+i;
    }
    int len = 19;
    while(len!=1){
        int k=0;
        for(int i=1;i<len;i+=2){
            arr[k++]=arr[i];
        }
        len=k;//k记录了去除基数上的数之后新数组的长度
        arr[len]='\0';
        cout<<arr<<endl;
    }
    cout<<arr[0];
    return 0;
}

升级版——本题答案版本

#include <iostream>
using namespace std;
int main(int argc,const char *argv[]){
    char arr[2014];
    int index=0;
    for(int j=0;j<106;++j){
        for(int i=0;i<19;i++){
            arr[index++]='a'+i;
        }
    }
    int len = 2014;
    while(len!=1){
        int k=0;
        for(int i=1;i<len;i+=2){
            arr[k++]=arr[i];
        }
        len=k;//k记录了去除基数上的数之后新数组的长度
        //arr[len]='\0';
        //cout<<arr<<endl;
    }
    cout<<arr[0];
    return 0;
}

只是比第一版的输入多了点内容
结果

q

JAVA版本

package _2013蓝桥杯省真题;

/**
 * @author 邓雪松 (づ ̄ 3 ̄)づ)
 * @create 2021-11-21-20-55
 */
public class 猜数字 {
    public static void main(String[] args) {
        char[] a = new char[2014];
        int index = 0;
        for (int i = 0; i < 106; i++) {
            for(int j=0;j<19;j++){
                a[index++]=(char)('a'+j);
            }
        }
        int len = 2014;
        while(len!=1){
            int k = 0;
            for(int i=1;i<len;i+=2){
                a[k++]=a[i];
            }
            len = k;
        }
        System.out.println(a[0]);
    }
}
posted @ 2021-11-21 20:39  ╰(‵□′)╯  阅读(39)  评论(0)    收藏  举报