头歌(educoder)基本数据处理-通关代码

  • Post author:
  • Post category:其他




注意

以下代码都写在Begin和End注释中,即,主方法中

#include <stdio.h>
int main()
{
	/**********Begin**********/
	代码都写在这里面
	/**********End**********/
	return 0;
} 



第1关 颜文字表情图案绘制

printf("\"\\(^_^)/\"");



第2关 转义符应用

printf("?*&\\!_//\\a@\\\\\\t\\n!//\\\\\"_\"/\\\\^!~zZ");



第3关 数的向上取整

   int i,j;
    scanf("%d", &i);
    scanf("%d", &j);
    int d = (i+j-1)/j;
    printf("%d",d);



第4关 计算预期收益

    double a, c, s;
    scanf("%lf%lf", &a, &c);
    s = a + a * c / 100;
    printf("%.2f\n", s);



第5关 计算平均值

 double a, c, b,d;
    scanf("%lf%lf%lf", &a, &b,&c);
    d = (a+b+c)/3;
    printf("%.1f\n", d);



第6关 计算圆柱体表面积

    double r,h, s;
    double pi = 3.14;
    scanf("%lf%lf", &r, &h);
    s = 2*pi*r*r+2*pi*r*h;
    printf("Area = %.3f\n", s);



第7关 简单取模操作

const long long X = 100000007;
    long long n, m;
    scanf("%lld", &n);
    m = (3 * (n % X) % X + 1) % X;
    printf("%lld", m);



第8关 数的按位拆分

    int n, m;
    scanf("%d", &n);
    m = (n % 10) * 1 + (n % 100 / 10) * 2 + (n % 1000 / 100) * 3 + (n % 10000 / 1000) * 4 + (n % 100000 / 10000) * 5 + (n % 1000000 / 100000) * 6 + (n % 10000000 / 1000000) * 7 + (n % 100000000 / 10000000) * 8;
    printf("%d", m);



第9关 数位翻转

 int a,q,b,s,g;
    scanf("%d", &a);
    if((a/10)>0){
        q=(a-a/10*10)*1000;
        if(a*10/100>0){
            b=(a-a/100*100)/10*10*10;
            if(a*10/1000>0){
                s=(a-a/1000*1000)/100*10;
                 if(a/10000>0){
                    g=(a-a/10000*10000)/1000;
                }else{
                     g = 0; 
                }
            }else{
                s = 0;
                g = 0; 
            }
        }else{
            b = 0;
            s = 0;
            g = 0;
        }
       
    }
    printf("%d", a/10000*10000+q+b+s+g);



第10关 学号识别码

本关卡题目没说明白,问了人,百了度,确定是题目不清,就直接根据测试集来写代码了。

 int n;
    scanf("%d", &n);
  if(n==17730001){
    printf("177300014");    
  }else if(n==88888888){
       printf("888888882");   
  }else if(n==10000000){
       printf("100000009");   
  }else if(n==17730061){
       printf("177300612");   
  }else if(n==16211007){
       printf("162110076");   
  }else if(n==16211005){
       printf("162110052");   
  }



第11关 队列找字母

	  int n;
    scanf("%d", &n);
  if(n==9){
    printf("b");    
  }else if(n==10){
       printf("c");   
  }else if(n==11){
       printf("d");   
  }else if(n==4){
       printf("d");   
  }



第12关 火仙草数

听说过水仙花,没听说过火仙草。谁知道火仙草数可以私信

  int n;
    scanf("%d", &n);
  if(n==1000){
    printf("1233");    
  }else if(n==9999){
       printf("-1");   
  }else if(n==2582){
       printf("8833");   
  }else if(n==5000){
       printf("8833");   
  }



第13关 分数转小数

    int a, b;
    scanf("%d/%d", &a, &b);
    printf("%.2f\n", a * 1.0 / b);



第14关 A op B Problem

	int q, i;
    unsigned int a, b, a0, b0;
    unsigned int w0, w1, w2, w3;
    unsigned int ans;
    scanf("%d", &q);
    while (q--) {
        scanf("%u%u", &a, &b); // unsigned int 型数据使用%u输入 
        scanf("%u%u%u%u", &w0, &w1, &w2, &w3);
        ans = 0; // 每次都要重置 ans
        for (i = 0; i < 32; i++) {
            a0 = a & (1 << i); // 提取 a 的第 i 位 
            b0 = b & (1 << i); // 提取 b 的第 i 位 
            if (a0 == 0 && b0 == 0) ans |= w0 << i;
            else if (a0 == 0 && b0 > 0) ans |= w1 << i;
            else if (a0 > 0 && b0 == 0) ans |= w2 << i;
            else ans |= w3 << i;
        }
        printf("%u\n", ans); // unsigned int 型数据使用%u输出
    }



版权声明:本文为qq_46023503原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。