题目链接:https://ac.nowcoder.com/acm/contest/18839?from=acdiscuss。
本人是c语言初学者,这是我的第一篇博客,记录刷题,有不足之处望海涵,有错误之处希望大佬们能在评论区指出,谢谢。
记录牛客刷题
- 1001 这是一道签到题
- 1002 排列式
- 1003 小飞机
- 1004 学姐的”Helloworld!”
- 1005 乘法表
- 1006 KiKi学程序设计基础
- 1007 疫情死亡率
- 1008 爱因斯坦的名言
- 1009 字符串输出1.0
- 1010 牛牛学说话之-整数
- 1011 牛牛学说话之-浮点数
- 1012 牛牛学加法
- 1013 牛牛学除法
- 1014 牛牛学取余
- 1015 浮点除法
- 1016 计算带余除法
- 1017 水题再次来袭:明天星期几?
- 1018 开学?
- 1019 helloworld
- 1020 a+b
- 1021 整数的个位
- 1022 整数的十位
- 1023 反向输出一个四位数
- 1024 总成绩和平均分计算
- 1025 计算平均成绩
- 1026 牛牛学梯形
- 1027 牛牛学矩形
- 1028牛牛学立体
- 1029 计算三角形的周长和面积
- 1030 你能活多少秒
- 1031 时间转换
- 1032 温度转换
- 1033 计算机内存
- 1034 [NOIP2017]成绩
- 1035 KiKi的最高分
- 1036 组队比赛
- 1037 平方根
- 1038 长方体
- 1039 使徒袭来
- 1040 白兔的分身术
- 1041 纸牌
- 1042 Tobaku Mokushiroku Kaiji
- 1043 珂朵莉的假动态仙人掌
- 1044 旅游观光
- 1045 [NOIP2002]自由落体
- 1046 挂科
- 1047 得不到的爱情
1001 这是一道签到题
#include int main() {printf("zhe\n");printf("shi\n");printf("yi\n");printf("dao\n");printf("qian\n");printf("dao\n");printf("ti");return 0;}
注意题目的要求:每个单词之间用回车隔开,末尾无额外空格与回车
1002 排列式
最简单的方法当然是直接输出所求,本人水平有限,请见谅,有关于本题的其他C语言解法的代码欢迎各位大佬分享在评论区,谢谢
#includeint main(){printf("4396 = 28 x 157\n");printf("5346 = 18 x 297\n");printf("5346 = 27 x 198\n");printf("5796 = 12 x 483\n");printf("5796 = 42 x 138\n");printf("6952 = 4 x 1738\n");printf("7254 = 39 x 186\n");printf("7632 = 48 x 159\n");printf("7852 = 4 x 1963\n");return 0;}
1003 小飞机
注意空格
#includeint main(){printf(" ** \n");printf(" ** \n");printf("************\n");printf("************\n");printf("**\n");printf("**\n");return 0;}
1004 学姐的”Helloworld!”
#includeint main(){printf("Helo word!");return 0;}
1005 乘法表
注意题目所给案例输出的空格
#include int main() {int a = 0,b=0;for (a = 1; a <= 9; a++) {for (b = 1; b <= a; b++) {printf("%d*%d=%2d ", b, a, b*a);}printf("\n");}}
1006 KiKi学程序设计基础
注意:添加转义字符才能输出\n和双引号
#includeint main(){printf("printf(\"Hello world!\\n\");\n");printf("cout << \"Hello world!\" << endl;");return 0;}
1007 疫情死亡率
注意: %% 表示 “%”
#includeint main(){int a,b;scanf("%d%d",&a,&b);double c;c=b/(a*1.0)*100;printf("%.3lf%%",c);}
1008 爱因斯坦的名言
注意:在所要输出双引号的”前面加上 \ ,即可输出双引号
#includeint main(){printf("\"Genius is 1%% inspiration and 99%% perspiration.\"");return 0;}
1009 字符串输出1.0
#includeint main(){printf("Welcome to ACM / ICPC!\n");printf("Welcome to ACM / ICPC!\n");printf("Welcome to ACM / ICPC!\n");}
1010 牛牛学说话之-整数
#includeint main(){int n;scanf("%d",&n);printf("%d",n);}
1011 牛牛学说话之-浮点数
#includeint main(){double n;scanf("%lf",&n);printf("%.3lf",n);}
1012 牛牛学加法
#includeint main(){int a,b;scanf("%d %d",&a,&b);printf("%d",a+b);}
1013 牛牛学除法
#includeint main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a/b);}
1014 牛牛学取余
#includeint main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a%b);return 0;}
1015 浮点除法
#includeint main(){int a,b;scanf("%d %d",&a,&b);double c;c=a/(b*1.0);printf("%.3lf",c);return 0;}
1016 计算带余除法
#includeint main(){int a,b;scanf("%d%d",&a,&b);int c,d;c=a/b;d=a%b;printf("%d %d",c,d);return 0;}
1017 水题再次来袭:明天星期几?
#includeint main(){int day;scanf("%d",&day);switch(day){case 1:printf("2");break;case 2:printf("3");break;case 3:printf("4");break;case 4:printf("5");break;case 5:printf("6");break;case 6:printf("7");break;case 7:printf("1");break;//一周只有七天,周日的下一天是周一}return 0;}
1018 开学?
#include int main(){int x, n;scanf("%d%d",&x,&n);for (int i = 1; i <= n; i ++){x ++;if (x == 8)//x最大只能是8x = 1;//如果x==8,把1赋值给x,继续循环}printf("%d",x);return 0;}
1019 helloworld
#include int main() {char str[20] = "hello world";int i=0;for (i = 0; str[i]!='\0' ; i++){s[i]+=1;printf("%c", str[i]);}return 0;}
1020 a+b
#includeint main(){int a,b;scanf("%d%d",&a,&b);int c;c=a+b;printf("%x",c);return 0;}
1021 整数的个位
#include int main(){int a;scanf("%d",&a);printf("%d",a % 10);return 0; }
1022 整数的十位
#includeint main(){int n;scanf("%d",&n);n=n/10%10;printf("%d",n);return 0;}
1023 反向输出一个四位数
#includeint main(){int n;scanf("%d",&n);printf("%d%d%d%d", n % 10,n / 10 % 10,n / 100 % 10,n / 1000 ) ;return 0;}
1024 总成绩和平均分计算
#includeint main(){double a,b,c,sum,avg;scanf("%lf%lf%lf",&a,&b,&c);sum=a+b+c;avg=sum/3.0;printf("%.2lf %.2lf",sum,avg);return 0;}
1025 计算平均成绩
#includeint main(){int q,w,e,r,t;double avg;scanf("%d%d%d%d%d",&q,&w,&e,&r,&t);avg=(q+w+e+r+t)/5.0;printf("%.1lf",avg);return 0;}
1026 牛牛学梯形
#include int main(){double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);double s;s=(a+b)*c;printf("%.3lf",s/2.0);return 0;}
1027 牛牛学矩形
#include int main(){int a, b;scanf("%d%d",&a,&b);printf("%d\n%d",(a + b) * 2 , a * b);return 0;}
1028牛牛学立体
#include >int main(){int a, b, c;scanf("%d%d%d",&a,&b,&c);printf("%d\n%d",(a * b + a * c + b * c) * 2 ,a * b * c);return 0;}
1029 计算三角形的周长和面积
#include#includeint main(){double a, b, c,p;scanf("%lf%lf%lf",&a,&b,&c);p=(a+b+c)/2.0;printf("circumference=%.2lf area=%.2lf",a+b+c,sqrt(p*(p-a)*(p-b)*(p-c)));return 0;}
1030 你能活多少秒
#includeint main(){int age;scanf("%d",&age);long long int q;q=age*31560000;printf("%lld",q);return 0;}
1031 时间转换
#includeint main(){int seconds;scanf("%d",&seconds);int a,b,c;a=seconds/60/60;b=(seconds-a*3600)/60;c=(seconds-a*3600-b*60);printf("%d %d %d",a,b,c);return 0;}
1032 温度转换
#includeint main(){double f,c;scanf("%lf",&f);printf("%.3lf",5/9.0*(f-32.0));return 0;}
1033 计算机内存
#include int main() {int n;scanf("%d",&n);printf("%d", 1024 * 1024 * n / 4);return 0;}
1034 [NOIP2017]成绩
#includeint main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d",0.2*a+0.3*b+0.5*c);return 0;}
1035 KiKi的最高分
#includeint max(int n,int m){int y;y=n>m?n:m;return y;}int main(){int a, b, c;scanf("%d%d%d",&a,&b,&c);printf("%d",max(a, max(b, c)));return 0;}
1036 组队比赛
#include#includeint main(){int a[6];int i,j,t,s;for(i=0;i<4;i++){scanf("%d",&a[i]);}for(i=0;i<3;i++)//冒泡排序{for(j=0;j<3-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}s=abs(a[3]+a[0]-(a[2]+a[1]));printf("%d ",s);return 0;}
1037 平方根
#include#includeint main(){int n;scanf("%d",&n);int a =sqrt(n);printf("%d",a);return 0;}
1038 长方体
#include#includeint main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);int x,y,z,sum=0;x=sqrt(b*c/a);y=sqrt(a*b/c);z=sqrt(a*c/b);sum=4*(x+y+z);printf("%d",sum);return 0;}
1039 使徒袭来
#includeint main(){int n;scanf("%d",&n);double q = pow(n, 1.0 / 3);printf("%.3lf",q * 3 );return 0;}
1040 白兔的分身术
#includeint main(){long long int n;scanf("%lld",& n);printf("%lld",1+n);return 0;}
1041 纸牌
~题目描述
小w想和你van纸牌
小w有两张纸牌,两张纸牌上都有相同的正整数n
每一轮一张纸牌上的数都可以减去小于等于另外一张纸牌上的数的数
每一轮只能操作和上轮不同的纸牌
小w想知道三轮之后两纸牌上数字之和的最小值
注意,不能减为负数
如果你按照每轮只能减去不大于对方纸牌数字的最大值,最终两张纸牌的和会尽可能小。在第一轮和第三轮操作同一张纸牌,在第二轮操作另一张,这样一来第一张纸牌会减到零,另一张纸牌会剩下大约半个n的值(向上取整)。
#include int main(){int n;scanf("%d",&n);printf("%d\n",(n+1)/2); return 0;}
我看到过一篇关于本题的博客,本人水平有限,有兴趣的可以看看:https://blog.nowcoder.net/n/6fa14b0a0039404bbd1361e7fe0a41f8″ />1042 Tobaku Mokushiroku Kaiji
#includeint min(int x,int y){return x<y?x:y;}int main(){int a, b, c, d, e, f;scanf("%d%d%d%d%d%d",& a ,& b ,& c ,& d ,& e ,& f);printf("%d\n" ,min(a, e) + min(b, f) + min(c, d) );return 0;}
1043 珂朵莉的假动态仙人掌
#includeint main(){int n;scanf("%d",&n);if (n % 3) printf("%d\n", n / 3 * 2 + 1 );else printf("%d", n / 3 * 2 );return 0;}
1044 旅游观光
~题目描述
有n个地方,编号为1->n,任意两个地方有公交车,从i到j的票价为(i+j)mod(n+1),而且这个票可以用无限次,你要把这些地方全部走一遍,问最小花费为多少。可以在任意地方开始和结束。
1 -> 10 -> 2 -> 9 -> 3 -> 8 -> 4 -> 7 -> 5 -> 6,代价是4
#includeint main(){int n;scanf("%d,",&n);if(n%2==0)printf("%d\n",n/2-1 );else printf("%d", n / 2 );return 0;}
1045 [NOIP2002]自由落体
题目描述
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2g(t^2),其中 g=10,t 为下落时间。地面上的小车以速度 V 前进。如下图:
小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。
#include#includeint main(){int n ,i, cnt = 0;double h, s, v, l, k, x1 , x2;scanf("%lf%lf%lf%lf%lf%d",&h,&s,&v,&l,&k,&n);//由H=1.0/2*g*t*t得t=sqtr(2H/g)=sqrt(2H/10.0)=sqrt(H/5.0)x1 = s + l - sqrt(2*(h - k) / 10.0) * v;//x=s+l-vtx2= s - sqrt(h / 5.0) * v;//y=s-x=s-vtfor (i = 0; i <= n - 1; i ++) {if ((x1 - i) >= 0.0001 && (x2 - i) <= 0.0001) cnt++;}printf("%d",cnt);return 0;}
1046 挂科
#includeint min(int a,int b){int c;c=a<b" />:b;return c;}int max(int a,int b){int c;c=a>b?a:b;return c;}int main(){int n, x, y;scanf("%d%d%d",&n,&x,&y);printf("%d %d",min(x,y),max(x+y-n,0));return 0;}
1047 得不到的爱情
塞瓦维斯特定理
若两数a,b均大于1,且a和b的最大公约数等于1(也就是a,b互为素数)。
要满足ax+by=c无整数解的最大的c的值为a*b-a-b。
#includeint main(){long n, m,k;scanf("%ld%ld",&n,&m);k= n * m - n - m ;printf("%ld\n",k);return 0;}