头歌(educoder)基本数据处理-通关代码
注意
以下代码都写在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 ", s);
第5关 计算平均值
double a, c, b,d; scanf("%lf%lf%lf", &a, &b,&c); d = (a+b+c)/3; printf("%.1f ", 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 ", 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 ", 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 ", ans); // unsigned int 型数据使用%u输出 }
下一篇:
内存溢出如何Dump文件