7-43 阅览室
很快打完 进步了 还有就是读懂题意 之前混淆了弄了很久
#include<iostream> #include<cstring> #include <bits/stdc++.h> using namespace std; int main(){ int n;cin>>n; for(int i=1;i<=n;i++) { int a[1000][2]={0};int sum=0;int ren=0; for(;;) { int num,time1,time2; char f; cin>>num>>f; scanf("%d:%d",&time1,&time2); int time=time1*60+time2; if(num==0)break; if(f==‘S‘){a[num][1]=1;a[num][0]=time;} if(f==‘E‘&&a[num][1]==1) {ren++;sum+=time-a[num][0];a[num][1]=0;} } if(sum%2==1)sum++; if(ren)printf("%d %d\n",ren,(sum)/ren); else printf("0 0\n"); } return 0; }
7-45 整除光棍
一开始模拟 位数不够 后来两个点过不了
#include<iostream> #include<cstring> #include <bits/stdc++.h> using namespace std; int main(){ int x;cin>>x; int n=0;int ans=0; while(1) { ans=ans*10+1;n++; if(ans>=x){ans%=x;} if(ans%x==0)break; } unsigned long long t=1; for(int i=1;i<n;i++) t=t*10+1; printf("%lld %d",t/x,n); return 0; }
然后边模拟边打印
虽然模拟的不太熟练 多打几次 输出整除 求余继续 一开始不能有0;
#include<iostream> #include<cstring> #include <bits/stdc++.h> using namespace std; int main(){ int x;cin>>x; int n=0;int ans=0; int key; int first=0; while(1) { ans=ans*10+1;n++; if(ans>=x){first=1;printf("%d",ans/x);ans%=x;} else if(first)printf("0"); if(ans==0){break;} } printf(" %d",n); return 0; }
点赞狂魔
用set很简单
7-50 重排链表
原文地址:https://www.cnblogs.com/bxd123/p/10193388.html
时间: 2024-10-10 08:19:02