每日三百行代码 第五天
做了17,18两年的PTA天梯赛的一级题
还没做完。。。。。
- L1-1 寻找250 (10 分)
- L1-2 日期格式化 (5 分)
- L1-3 阅览室 (20 分) (未做)
- L1-4 稳赢 (15 分)
- L1-5 宇宙无敌大招呼 (5 分)
- L1-6 整除光棍 (20 分)
- L1-7 装睡 (10 分)
- L1-8 矩阵A乘以B (15 分)
- L1-1 天梯赛座位分配 (20 分) (未做)
- L1-2 倒数第N个字符串 (15 分)
- L1-3 打折 (5 分)
- L1-4 2018我们要赢 (5 分)
- L1-5 电子汪 (10 分)
- L1-6 福到了 (15 分)
- L1-7 谁是赢家 (10 分)
- L1-8 猜数字 (20 分)
//L1-1 寻找250 (10 分)
#include<stdio.h>
int main(){
int a;
int cnt=0;
for(int i=0;;i++){
scanf("%d",&a);
cnt++;
if(a==250){
break;
}
}
printf("%d",cnt);
return 0;
}
//L1-2 日期格式化 (5 分)
#include<stdio.h>
int main(){
int a,b,c;
scanf("%d-%d-%d",&a,&b,&c);
printf("%04d-%02d-%02d\n",c,a,b);
return 0;
}
//暂时不会做
//map还没开始学
//L1-4 稳赢 (15 分)
#include <stdio.h>
#include <string.h>
int main(){
int k = 0;
char s[20];
int cnt = 0;
scanf("%d", &k);
k++;
while(scanf("%s", s)){
if(strcmp(s, "End") == 0) break;
cnt++;
if(k == cnt){
printf("%s\n",s);
cnt = 0;
} else if(strcmp(s, "ChuiZi") == 0){
printf("Bu\n");
} else if(strcmp(s, "JianDao") == 0){
printf("ChuiZi\n");
} else if(strcmp(s, "Bu") == 0){
printf("JianDao\n");
}
}
return 0;
}
//L1-5 宇宙无敌大招呼 (5 分)
#include<stdio.h>
int main(){
char s[8];
gets(s);
printf("Hello %s",s);
return 0;
}
//L1-6 整除光棍 (20 分)
#include<stdio.h>
int ans[1000];
typedef long long ll;
int main(){
int x;
scanf("%d",&x);
ll res=1;
int sum=1;
while(res%x!=0){
sum++;
res=(res*10+1)%x;
}
int p=0;res=1;
for(int i=0;i<sum;i++){
if(res<x){
ans[p++]=0;
}else{
ans[p++]=res/x;
res%=x;
}
res=res*10+1;
}
int t=0;
while(ans[t]==0){
t++;
}
for(int i=t;i<p;i++){
printf("%d",ans[i]);
}
printf(" %d\n",sum);
return 0;
}
//L1-7 装睡 (10 分)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
char name[4];
scanf("%s",name);
int h,m;
scanf("%d %d",&h,&m);
if(h>20||h<15||m>70||m<50){
printf("%s\n",name);
}
}
return 0;
}
#include<stdio.h>
int a[100][100];
int b[100][100];
int main(){
int ra,rb,ca,cb;
scanf("%d %d",&ra,&cb);
for(int i=0;i<ra;i++){
for(int j=0;j<ca;j++){
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<rb;i++){
for(int j=0;j<cb;j++){
scanf("%d",&b[i][j]);
}
}
if(ca!=rb){
printf("Error: %d != %d\n",ca,rb);
}else{
int m=0;
printf("%d %d\n",ra,cb);
for(int k1=0;k1<ra;k1++){
for(int k2=0;k2<cb;k2++){
m=0;
for(int i=0;i<ca;i++){
m += a[k1][i]*b[i][k2];
}
if(k2==cb-1){
printf("%d\n",m);
}else{
printf("%d ",m);
}
}
}
}
return 0;
}
#include<stdio.h>
int main(){
int ra,ca,rb,cb;
//给 A 数组赋值
scanf("%d%d",&ra,&ca);
int a[ra][ca];
for(int i=0;i<ra;i++){
for(int j=0;j<ca;j++){
scanf("%d",&a[i][j]);
}
}
// 给B数组赋值
scanf("%d%d",&rb,&cb);
int b[rb][cb];
for(int i=0;i<rb;i++){
for(int j=0;j<cb;j++){
scanf("%d",&b[i][j]);
}
}
//判断是否满足输出求乘积条件
if(ca!=rb){
printf("Error: %d != %d",ca,rb);
return 0;
}
int c[ra][cb];
for(int i=0;i<ra;i++){
int sum=0;
for(int j=0;j<cb;j++){
int sum=0;
for(int k=0;k<ca;k++){
sum+=(a[i][k]*b[k][j]);
}
c[i][j]=sum;
}
}
//打印输出
printf("%d %d\n",ra,cb);
for(int i=0;i<ra;i++){
for(int j=0;j<cb;j++){
printf("%d",c[i][j]);
if(j!=cb-1){
printf(" ");
}
}
if(i!=ra-1){
printf("\n");
}
}
return 0;
}
//还是不会
//L1-2 倒数第N个字符串 (15 分)
#include <stdio.h>
#include <math.h>
int i,j;
char ch[10000005];
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int M=pow(26,n)-m;
while(n--){
ch[i++]='a'+M%26;
M/=26;
}
for(int j=i-1;j>=0;j--)
printf("%c",ch[j]);
return 0;
}
// L1-3 打折 (5 分)
#include<stdio.h>
int main()
{
int m,n;
double q;
scanf("%d %d",&m,&n);
q=m*n*0.1;
printf("%.2lf",q);
return 0;
}
//L1-4 2018我们要赢 (5 分)
#include<stdio.h>
int main()
{
printf("2018\n");
printf("wo3 men2 yao4 ying2 !\n");
return 0;
}
//L1-5 电子汪 (10 分)
#include<stdio.h>
int main()
{
char m[]="Wang!";
int a,b,n;
scanf("%d %d",&a,&b);
n=a+b;
while(n--){
printf("%s",m);
}
return 0;
}
//L1-6 福到了 (15 分)
#include<stdio.h>
int n;
char ch,str[105][105];
int strcmp2(char *s1,char *s2){
for(int i=0,j=n-1;i<n/2&&j>n/2;i++,j--){
if(s1[i]!=s2[j])
return 1;
}
return 0;
}
int main(){
scanf("%c%d",&ch,&n);
getchar();
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
scanf("%c",&str[i][j]);
getchar();
}
int t=n/2;
int k;
for(k=0;k<t;k++){
if(strcmp2(str[k],str[n-k-1]))
break;
}
if(k==t)
printf("bu yong dao le\n");
for(int i=n-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
if(str[i][j]=='@')
printf("%c",ch);
else
printf(" ");
}
printf("\n");
}
return 0;
}
//L1-7 谁是赢家 (10 分)
#include"stdio.h"
int main()
{
int a,b,p1,p2;
int x,y,z;
scanf("%d%d",&a,&b);
scanf("%d%d%d",&x,&y,&z);
p2=x+y+z;
if(p2==3)
printf("The winner is b: %d + %d",b,p2);
else if(p2==0)
printf("The winner is a: %d + %d",a,3-p2);
else if(a>b)
printf("The winner is a: %d + %d",a,3-p2);
else
printf("The winner is b: %d + %d",b,p2);
return 0;
}
//L1-8 猜数字 (20 分)
#include<stdio.h>
#include<math.h>
struct pepole{
//用结构体表示输入的数据
//因为输入的数据结构相同,都是一个字符串和一个数字
int num;
int name[10];
}p[10005],pmin;//pmin表示最小值
int main (){
int i,n,sum=0;
double half;//half表示平均数的一半
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %d",p[i].name,&p[i].num);
sum=sum+p[i].num;
}
half=sum*1.0/n*0.5;
pmin=p[0];
for(i=0;i<n;i++)
{
if(fabs(pmin.num-half)>fabs(p[i].num-half))//最接***均数的一半
pmin=p[i];
}
printf("%.0f %s",half,pmin.name);
return 0;
}