zoukankan      html  css  js  c++  java
  • 蓝桥杯【基础训练】部分

    BASIC-1 闰年判断

    /*
    基础训练:BASIC-1 闰年判断 条件判断
    */
    
    #include<iostream>
    using namespace std;
     int main()
     {
         int year;
         cin>>year;
         while(year<=2050&&year>=1990)
         {
             if(year%4==0)
                 if(year%100==0)
                        if(year%400==0)
                           {cout<<"yes";break;}
                     else
                           {cout<<"no";break;}
                 else
                     {cout<<"yes";break;}
            else
             {cout<<"no"; break;}
             cin>>year;
         }
         return 0;
     }

    BASIC-2 01串

    /*
    基础训练: BASIC-2  01字串    循环 
    
    */
    
    #include <stdio.h>
    
    int main(void)
    {
        int a, b, c, d, e; 
        
        for(a = 0; a < 2; a++)
            for(b = 0; b < 2; b++)
                for(c = 0; c < 2; c++)
                    for(d = 0; d < 2; d++)
                        for(e = 0; e < 2; e++)
                        {
                            printf("%d%d%d%d%d
    ", a, b, c, d, e);
                        }
        return 0;
    }
    BASIC-3  字母图形
    /*
    BASIC-3    字母图形    循环 字符串
    
    字母的序号与两个坐标的差的绝对值有关,26个字母对应的序号分别是0到25. 
    */
    
    #include<iostream>
    #include<math.h>
    using namespace std;
    
    char toStr(int i, int j, char str[26]){
        char tostr;
        int num, k;
        num = abs(i - j);
        return str[num];
    
    }
    
    int main(void){
        int n, m, i, j;    //n >= 1 , m <= 26
        
        char str[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W',X','Y','Z'};
        
        int a[n][m];
        
        cin >> n >> m;
        
        for(i = 0; i < n; i++){
            for(j = 0 ; j < m; j++){
                printf("%c", toStr(i, j, str));
            }
            printf("
    ");
        }
        
        return 0;
    }
    
    
    BASIC-4    数列特征
    /*
    BASIC-4    数列特征    循环 最大值 最小值 累加
    */
    #include <stdio.h>
    #define MaxSize 10000
    
    main()
    {
        int n;
        int sum=0,min=MaxSize,max=-MaxSize;
        
        scanf("%d",&n);
        while(n--)
        {
            int temp,st;
            scanf("%d",&temp);
            
            if(temp>max)
            {
                max=temp;
            }
            if(temp<min)
            {
                min=temp;
            }
            sum+=temp;
        }
        printf("%d
    %d
    %d
    ",max,min,sum);
        
        return 0;
    }
    BASIC-5    查找整数    循环 判断
    /*
    BASIC-5    查找整数    循环 判断
    */
    
    
    #include<iostream>
    using namespace std;
    
    int main(void){
        int n, b, i, flag = -1;
        unsigned int a[1000];
        
        cin >> n;
        for(i = 0; i < n; i++){
            cin >> a[i];
        }
        
        cin >> b;
        for(i = 0; i < n; i++){
            if(b == a[i]){
                flag = 0;
                cout<<(i + 1);
                break;
            }
        }
        if(flag){
            cout << flag;
        }
        return 0;
    } 
    
    
    BASIC-6    杨辉三角形
    /*
    BASIC-6    杨辉三角形    基础练习 二维数组
    */
    
    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    int main(void){
        int num, i, j;  //num <= 34
        int a[100][100];    //将杨辉三角存储与二维数组 
        
        cin >> num;
        if(num >= 1 && num <= 34){
            //初始化 
            for(i = 0; i < num; i++){
                //杨辉三角的每行的第一位和最后一位为一 
                a[i][0] = a[i][i] = 1;
                
                for(j = 0; j < i; j++){
                    //除第一,二行,其余行是前一行与之对应的计算和 
                    a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
                }
            }
            
            //输出 
            for(i = 0; i < num; i++){
                for(j = 0; j <= i; j++){
                    cout << a[i][j] << " ";    //每行的每个数之间空一格
    //                cout << std::left << setw(5) << a[i][j]; //这种方法不和题意,且显示效果不必上个输出好 
                }
                cout << endl;
            }
        }
        
        return 0;
    } 
    BASIC-7    特殊的数字
    /*
    BASIC-7    特殊的数字    循环 判断 数位
    */
    
    #include<iostream>
    using namespace std;
    
    int main(void){
        int num, a, b, c;
        for(num = 100; num <= 999; num++){
            a = num % 10;
            b = num % 100 / 10;
            c = num / 100;
            if(a*a*a + b*b*b + c*c*c == num){
                cout << num << endl;
            }
        }
        return 0;
    } 
    BASIC-8    回文数
    /*
    BASIC-8    回文数    循环 判断 回文数
    */
    
    
    #include<iostream>
    using namespace std;
    
    int main(void){
        unsigned int num, a, b, c, d;
        
        for(num = 1000; num <= 9999; num++){
            a = num % 10;    //个位 
            b = num % 100 / 10;    //十位 
            c = num % 1000 / 100;    //百位 
            d = num / 1000;    //千位 
            if(a == d && b == c){
    //            cout << a << b << c << d << " ";
    
                cout << num << endl;
            }
        }
        return 0;
    }
    BASIC-9    特殊回文数 
    /*
    BASIC-9    特殊回文数    回文数 循环 条件语句
    */
    
    #include<iostream>
    using namespace std;
    
    int main(void){
        long int numb;
        int a, b, c, d, e, f, num;
        
        cin >> num;
        
        for(numb = 10000; numb <= 999999; numb++){
            if(numb <= 99999){
                a = numb % 10;
                b = numb % 100 / 10;
                c = numb % 1000 / 100;
                d = numb % 10000 / 1000;
                e = numb / 10000;
                if((num == a + b + c + d + e) && (a == e) && (b == d)){
                    cout << numb << endl;
                }
            }else{
                a = numb % 10;
                b = numb % 100 / 10;
                c = numb % 1000 / 100;
                d = numb % 10000 / 1000;
                e = numb % 100000 / 10000;
                f = numb / 100000;
                if((num == a + b + c + d + e + f) && (a == f) && (b == e) && (c == d)){
                    cout << numb << endl;
                } 
            }
        }
        
        return 0;
    }
    BASIC-10    十进制转十六进制
    /*
    BASIC-10    十进制转十六进制    循环 整除 求余 判断
    */ 
    
    #include <iostream>
    #include <cstring>
    using namespace std;
    
    string decimalToHexadecimal(int num);
    
    string decimalToHexadecimal(int num){
        int ans,k;k=0;
        string result="";
        if(num == 0){
            cout << "0" << endl; 
            return result += "0";
            }
        while(num>0){
          ans = num % 16;
          if(ans <= 9 && ans >= 0){
              result[k++] = ans + 48;
                }else if(ans >= 10 && ans < 16){
                    result[k++] = ans + 55;
                }
          num = num / 16;
        }
        for(int i = k-1; i >= 0; i--)
          cout << result[i];
        cout << endl;
        return result;
    }
    
    int main(void)
    {
        int num;
        while(cin >> num)
        {
                decimalToHexadecimal(num);
        }
        return 0;
    }
    BASIC-12 十六进制转八进制 进制转换 字符 循环
    这道题
    不是我ac的是这个人!)
    /*BASIC-12 十六进制转八进制 进制转换 字符 循环*/
    #include <iostream>
    #include <string>
    using namespace std;
    int arr[10000001];
    
    int main()
    {
        int n,len_str,i,j;
        string str,str2;
        cin>>n;
        while(n--)
        {
            cin>>str;
            len_str=str.length();
            str2="";
    
            // 十六进制转换为二进制
            for(i=0;i<len_str;++i)
            {
                switch(str[i])
                {
                case '0':str2+="0000";break;
                case '1':str2+="0001";break;
                case '2':str2+="0010";break;
                case '3':str2+="0011";break;
                case '4':str2+="0100";break;
                case '5':str2+="0101";break;
                case '6':str2+="0110";break;
                case '7':str2+="0111";break;
                case '8':str2+="1000";break;
                case '9':str2+="1001";break;
                case 'A':str2+="1010";break;
                case 'B':str2+="1011";break;
                case 'C':str2+="1100";break;
                case 'D':str2+="1101";break;
                case 'E':str2+="1110";break;
                case 'F':str2+="1111";break;
                default:break;
                }
            }
            
            // 修正位数
            if(len_str%3==1)    str2="00"+str2;
            
            else if(len_str%3==2)    str2="0"+str2;
    
            
            len_str=str2.length();
            // 二进制转换八进制
            j=0;
            for(i=0;i<=len_str-2;i+=3)
            {
                arr[j]=(str2[i]-'0')*4+(str2[i+1]-'0')*2+(str2[i+2]-'0');
                ++j;
            }
    
            for(i=0;i<j;++i)
            {
                if(i==0 && arr[i]==0)    continue;
                cout<<arr[i];
            }
            cout<<endl;
    
        }
        return 0;
    
    }

     

    BASIC-13    数列排序
    /*
    BASIC-13    数列排序    数组 排序
    
    */
    
    #include<iostream>
    using namespace std;
    
    void quickSort(int num[], int low, int hight);
    int quickPass(int num[], int low, int hight);
    
    void quickSort(int num[], int low, int hight){
        int pos;
        if(low < hight){
            pos = quickPass(num, low, hight);
            quickSort(num, low, pos - 1);
            quickSort(num, pos + 1, hight);
        }
    }
    
    int quickPass(int num[], int low, int hight){
        int x;
        x = num[low];
        while(low < hight){
            while(low < hight && num[hight] >= x){
                hight--;
            }
            if(low < hight){
                num[low] = num[hight];
                low++;
            }
            while(low < hight && num[low] <= x){
                low++;
            }
            if(low < hight){
                num[hight] = num[low];
                hight--;
            }
        }
        num[low] = x;
        return low;
    }
    
    int main(void){
        unsigned int n;
        int num[10000], i;
        
        cin >> n;
        for(i = 0; i < n; i++){
            cin >> num[i];
        }
        
        quickSort(num, 0, i - 1);
        
        for(i = 0; i < n; i++){
            cout << num[i] << " ";
        }
        return 0;
    }
  • 相关阅读:
    springcloud之consul
    git学习创建项目仓库
    学习vue之路V1.0.0
    使用jquery+ajax+php实现搜索框的功能
    发现一个vue的UI组件库
    一个菜鸟用webpack-vue.js编译过程碰到的坑~~!!
    学习vue之路
    typescript入门
    计算机排序算法
    js中三种变量的声明方式const ; var ; let
  • 原文地址:https://www.cnblogs.com/libra-yong/p/6017514.html
Copyright © 2011-2022 走看看