天梯赛L1
- L1-001 Hello World
- L1-002 打印沙漏
- L1-003 个位数统计
- L1-004 计算摄氏温度
- L1-005 考试座位号
- L1-006 连续因子
- L1-007 念数字
- L1-008 求整数段和
- L1-009 N个数求和
- L1-010 比较大小
- L1-011 A-B
- L1-012 计算指数
- L1-013 计算阶乘和
- L1-014 简单题
- L1-015 跟奥巴马一起画方块
- L1-016 查验身份证
- L1-017 到底有多二
- L1-018 大笨钟
- L1-019 谁先倒
- L1-020 帅到没朋友
- L1-021 重要的话说三遍
- L1-022 奇偶分家
- L1-023 输出GPLT
- L1-024 后天
- L1-025 正整数A+B
- L1-026 I Love GPLT
- L1-027 出租
- L1-028 判断素数
- L1-029 是不是太胖了
- L1-030 一帮一
- L1-031 到底是不是太胖了
- L1-032 Left-pad
- L1-033 出生年
- L1-034 点赞
- L1-035 情人节
- L1-036 A乘以B
- L1-037 A除以B
- L1-038 新世界
- L1-039 古风排版
- L1-040 最佳情侣身高差
- L1-041 寻找250
- L1-042 日期格式化
- L1-043 阅览室
- L1-044 稳赢
- L1-045 宇宙无敌大招呼
- L1-046 整除光棍
- L1-047 装睡
- L1-048 矩阵A乘以B
- L1-049 天梯赛座位分配
- L1-050 倒数第N个字符串
- L1-051 打折
- L1-052 2018我们要赢
- L1-053 电子汪
- L1-054 福到了
- L1-055 谁是赢家
- L1-056 猜数字
- L1-057 PTA使我精神焕发
- L1-058 6翻了
- L1-059 敲笨钟
- L1-060 心理阴影面积
- L1-061 新胖子公式
- L1-062 幸运彩票
- L1-063 吃鱼还是吃肉
- L1-064 估值一亿的AI核心代码
- L1-065 嫑废话上代码
- L1-066 猫是液体
- L1-067 洛希极限
- L1-068 调和平均
- L1-069 胎压监测
- L1-070 吃火锅
- L1-071 前世档案
- L1-072 刮刮彩票
- L1-073 人与神
- L1-074 两小时学完C语言
- L1-075 强迫症
- L1-076 降价提醒机器人
- L1-077 大笨钟的心情
- L1-078 吉老师的回归
- L1-079 天梯赛的善良
- L1-080 乘法口诀数列
- L1-081 今天我要赢
- L1-082 种钻石
- L1-083 谁能进图书馆
- L1-084 拯救外星人
- L1-085 试试手气
- L1-086 斯德哥尔摩火车上的题
- L1-087 机工士姆斯塔迪奥
- L1-088 静静的推荐
- L1-089 最好的文档
- L1-090 什么是机器学习
- L1-091 程序员买包子
- L1-092 进化论
- L1-093 猜帽子游戏
- L1-094 剪切粘贴
- L1-095 分寝室
- L1-096 谁管谁叫爹
- L1-097 编程解决一切
- L1-098 再进去几个人
- L1-099 帮助色盲
- L1-100 四项全能
- L1-101 别再来这么多猫娘了!
- L1-102 兰州牛肉面
- L1-103 整数的持续性
- L1-104 九宫格
L1-001 Hello World
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World!";
}
L1-002 打印沙漏
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int x;
char ch;
cin>>x>>ch;
int n=sqrt((x+1)/2);//n单独层数
int b=x-(2*n*n-1);//剩余
int t=2*n-1;//总共层数
for(int i=0,sp=0;i<2*n-1;i++){
for(int z=0;z<sp;z++) cout<<" ";
for(int j=0;j<t;j++)
cout<<ch;
cout<<endl;
if(i<n-1) sp++,t-=2;
else sp--,t+=2;
}
cout<<b<<endl;
return 0;
}
L1-003 个位数统计
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
const int N=1010;
char s[N];
int st[11];
int main(){
cin>>s;
int len=strlen(s);
for(int i=0;i<len;i++){
int x=s[i]-'0';
st[x]++;
}
for(int i=0;i<=9;i++){
if(st[i])
cout<<i<<":"<<st[i]<<endl;
}
return 0;
}
L1-004 计算摄氏温度
#include<bits/stdc++.h>
using namespace std;
int main(){
int c,f;
cin>>f;
c=5*(f-32)/9;
printf("Celsius = %d\n",c);
return 0;
}
L1-005 考试座位号
#include<bits/stdc++.h>
using namespace std;
struct node{
string k;
int j,s;
bool operator<(const node &no) const{
return j<no.j;
}
}n[1010];
int f[1010];
int main(){
int n1,m;
cin>>n1;
for(int i=0;i<n1;i++){
cin>>n[i].k>>n[i].j>>n[i].s;
}
sort(n,n+n1);
cin>>m;
for(int i=0;i<m;i++)
{
int x;
cin>>x;
cout<<n[x-1].k<<" "<<n[x-1].s<<endl;
}
return 0;
}
L1-006 连续因子
枚举开始数和长度,累计连续因子的积,肯定能被整除当条件
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,sum,count,j,i,max=0,fa;
cin>>n;
for(i=2;i<sqrt(n);i++){
sum=1;
count=0;
for(j=i;n%(sum*j)==0;j++){//n%(sum*j)显示浮点错误
count++;
sum*=j;
}
if(count>max){
max=count;
fa=i;
}
}
if(max==0){
cout<<"1"<<endl<<n;
}else{
cout<<max<<endl;
cout<<fa;
for(int i=fa+1;i<fa+max;i++)
cout<<"*"<<i;
}
}
枚举长度,因为13!大于2的31次方,从大到小枚举长度.
13!(13的阶乘)大于2^31
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int n=0;
cin>>n;
int start=0;
int len=0;
int flag=1;
for(len=12;len>0;len--)
{
for(start=2;start<=sqrt(n);start++)
{
int temp=1;
for(int x=start;x<start+len;x++)
{
temp*=x;
}
if(n%temp==0)
{
flag=0;
break;
}
}
if(!flag)
break;
}
if(flag)
{
cout<<1<<endl<<n;
}
else
{
cout<<len<<endl<<start;
for(int i=start+1;i<start+len;i++)
{
cout<<"*"<<i;
}
}
return 0;
}
L1-007 念数字
哈希
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
char s[100001];
cin>>s;
string st[11]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int len=strlen(s);
if(s[0]=='-'){
cout<<"fu";
for(int i=1;i<len;i++){
int t=s[i]-'0';
cout<<" "<<st[t];
}
}else{
for(int i=0;i<len;i++){
int t=s[i]-'0';
if(i==0) cout<<st[t];
else cout<<" "<<st[t];
}
}
}
L1-008 求整数段和
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int tot=0,sum=0;
for(int i=n;i<=m;i++){
printf("%5d",i);
tot++;
if(tot%5==0&&i!=m) printf("\n");
sum+=i;
}
printf("\n");
printf("Sum = %d",sum);
return 0;
}
L1-009 N个数求和
普通解法,分类讨论
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1010;
struct node{
int n1,n2;
}temp[N];
signed main(){
int n;
cin>>n;
int sum=1,tot=0;
char c;
for(int i=0;i<n;i++){
cin>>temp[i].n1>>c>>temp[i].n2;
sum*=temp[i].n2;
}
for(int i=0;i<n;i++){
int SUM=temp[i].n1;
for(int j=0;j<n;j++){
if(i!=j){//不能用分母相同判断
SUM*=temp[j].n2;
}
}
tot+=SUM;
}
if(tot==0){
cout<<"0"<<endl;
return 0;
}else if(tot%sum==0){
cout<<tot/sum<<endl;
}else if(tot/sum>=1){
cout<<tot/sum<<" ";
int m=tot%sum;
int g=__gcd(m,sum);
cout<<m/g<<"/"<<sum/g;
}else{
int g=__gcd(tot,sum);
cout<<tot/g<<"/"<<sum/g;
}
return 0;
}
简单模板,一个一个累加,有一个算一个。
分类:1.a为零
2.a/b为零整体小于1,a/b=0
3.整体为整数,a%b==0
4.整体大于1且有余数,a%b!=0
#include<iostream>
#include<algorithm>
using namespace std;
void split(long int &A, long int &B) {
long int g = __gcd(A, B);//求最大公因数
A /= g;//约分
B /= g;
}
int main(void) {
int N;
int long a, b, x, y;
cin >> N;
scanf("%ld/%ld", &a, &b);
for (int i = 1; i < N; i++) {
scanf("%ld/%ld", &x, &y);
a = a * y + x * b;
b = b * y;
split(a, b);
}
if (N == 1)
split(a, b);
if (a == 0)
cout << 0;
else if (a / b == 0)
cout << a << "/" << b;
else if (a%b)
cout << a / b << " " << a % b << "/" << b;
else
cout << a / b;
}
L1-010 比较大小
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[4];
for(int i=0;i<3;i++) cin>>a[i];
sort(a,a+3);
for(int i=0;i<3;i++){
if(i==2) cout<<a[i];
else cout<<a[i]<<"->";
}
}
L1-011 A-B
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
getline(cin,a);
getline(cin,b);
for(int i=0;i<a.size();i++){
if(b.find(a[i])==-1)
cout<<a[i];
else continue;
}
return 0;
}
cin.getline(s,max)和strchr(s,char)函数
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[101000],b[101000];
cin.getline(a,101000);
cin.getline(b,101000);
int len=strlen(a);
for(int i=0;i<len;i++){
if(strchr(b,a[i]))//没有返回null
continue;
else cout<<a[i];
}
}
哈希,ascall码总共256个
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[10005];
char b[10005];
cin.getline(a,101000);
cin.getline(b,101000);
int t[256];
for(int i=0;i<strlen(b);i++){
t[b[i]] = 1;
}
for(int i=0;i<strlen(a);i++){
if(t[a[i]]==0){
printf("%c",a[i]);
}
}
}
L1-012 计算指数
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
printf("2^%d = %d",n,(1<<n));
return 0;
}
L1-013 计算阶乘和
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int tot=0;
for(int i=1;i<=n;i++){
int sum=1;
for(int j=1;j<=i;j++)
sum*=j;
tot+=sum;
}
cout<<tot;
}
L1-014 简单题
#include<bits/stdc++.h>
using namespace std;
int main(){
printf("This is a simple problem.");
}
L1-015 跟奥巴马一起画方块
四舍五入的技巧,整数。求n关于t四舍五入——(n+t/2)/t
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char ch;
cin>>n>>ch;
int row=(n+1)/2;
for(int i=1;i<=row;i++){
for(int j=0;j<n;j++)
cout<<ch;
cout<<endl;
}
return 0;
}
L1-016 查验身份证
哈希,可以再dev里面替换中文,
#include<bits/stdc++.h>
using namespace std;
int t[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
string a="10X98765432";
int main(){
int n;
string s;
cin>>n;
int cnt=0;
for(int i=0;i<n;i++){
cin>>s;
bool fa=true;
int sum=0;
for(int j=0;j<17;j++){
if(isdigit(s[j])){
int x=s[j]-'0';
sum+=(x*t[j]);
}else{
fa=false;
break;
}
}
if(fa){
int z=sum%11;
if(s[17]!=a[z]){
cnt++;
cout<<s<<endl;
}
}else{
cnt++;
cout<<s<<endl;
}
}
if(cnt==0) cout<<"All passed";
return 0;
}
L1-017 到底有多二
判断奇数偶数
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
double p=1.0;
int len=s.size();
if(s[len-1]%2==0) p*=2.0;
if(s[0]=='-'){
p*=1.5;
s=s.substr(1);
len--;
}
int tot=0;
for(int i=0;i<len;i++){
if(s[i]=='2')
tot++;
}
double ans=1.0*tot/len*p*100;
printf("%.2f%%",ans);
}
L1-018 大笨钟
atoi,c_str()函数
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin >> s;
int h, m;
string mm, hh;
hh = s.substr(0, 2);
mm = s.substr(3);
// 将 string 转换为整数
h = atoi(hh.c_str());//c_str()的用法,不能用东西接收const char *
m = atoi(mm.c_str());
if(h>=0&&h<=12){
printf("Only %s:%s. Too early to Dang.",hh.c_str(),mm.c_str());
}else{
int cnt=h-12;
if(m!=0) cnt++;
for(int i=0;i<cnt;i++){
cout<<"Dang";
}
}
return 0;
}
输入技巧scanf
#include<bits/stdc++.h>
using namespace std;
int main(){
int h,m;
scanf("%d:%d",&h,&m);
if((h>=0 && h<=11) || (h==12 && m==0)){
printf("Only %02d:%02d. Too early to Dang.",h,m);//-向左对齐
}else{
if(m>0){
h++;
}
for(int i=1;i<=h-12;i++){
cout << "Dang";
}
}
return 0;
}
L1-019 谁先倒
#include<bits/stdc++.h>
using namespace std;
int main(){
int cnt1,cnt2;//甲乙酒量
cin>>cnt1>>cnt2;
int s1=cnt1,s2=cnt2;
int n;
cin>>n;
for(int i=0;i<n;i++){
int a,b,c,d;
cin>>a>>b>>c>>d;
int sum=a+c;
if(b==sum&&d==sum) continue;
if(b!=sum&&d!=sum) continue;
if(b==sum&&d!=sum){
cnt1--;
if(cnt1==-1){
cout<<"A"<<endl<<(s2-cnt2);
break;
}
}
if(b!=sum&&d==sum){
cnt2--;
if(cnt2==-1){
cout<<"B"<<endl<<(s1-cnt1);
break;
}
}
}
return 0;
}
L1-020 帅到没朋友
find函数在stl容器中,找不到返回end(),string中返回-1
只输出一次,哈希st标记,set去重。
#include<bits/stdc++.h>
using namespace std;
set<int> s;
bool hs[100005];
int a[1005];//数组开小了,最后一个样例过不去
int main(){
int n,k,m;
cin>>n;
for(int i=0;i<n;i++){
cin>>k;
for(int j=0;j<k;j++)
cin>>a[j];
if(k>1){
for(int t=0;t<k;t++)
s.insert(a[t]);
}
}
cin>>m;
int cnt=0;
for(int i=0;i<m;i++){
int x;
cin>>x;
if(!hs[x]){
hs[x]=true;
if(s.find(x)==s.end()){
if(!cnt){
printf("%05d",x);
}else{
printf(" %05d",x);
}
cnt++;
}
}
}
if(!cnt){
printf("No one is handsome");
}
return 0;
}
cout的相关输出控制。setw(5)表示占五位,setfill(‘0’)前导零填充。
#include<bits/stdc++.h>
using namespace std;
int a[1005];
bool hashT[100005];
set<int> s;
int main(){
int N;
cin >> N;
for(int i=1;i<=N;i++){
int K;
cin >> K;
for(int i=1;i<=K;i++){
cin >> a[i];
}
if(K>1){
for(int j=1;j<=K;j++){
s.insert(a[j]);
}
}
}
int M;
cin >> M;
int cnt = 0;
for(int i=1;i<=M;i++){
int t;
cin >> t;
if(!hashT[t]){
hashT[t] = true;
if(s.find(t)==s.end()){
if(!cnt){
printf("%05d",t);
}else{
printf(" %05d",t);
//cout << " " << setw(5) << setfill('0') << x;
}
cnt++;
}
}
}
if(!cnt){
cout << "No one is handsome" << endl;
}
return 0;
}
L1-021 重要的话说三遍
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i=0;i<3;i++)
printf("I'm gonna WIN!\n");
return 0;
}
L1-022 奇偶分家
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int x,cnt=0;
for(int i=0;i<n;i++){
cin>>x;
if(x&1) cnt++;
}
cout<<cnt<<" "<<(n-cnt);
}
L1-023 输出GPLT
#include<bits/stdc++.h>
using namespace std;
int n1=0,n2,n3,n4;
int main(){
string s;
cin>>s;
for(int i=0;i<s.size();i++){
char t=tolower(s[i]);
if(t=='g') n1++;
else if(t=='p') n2++;
else if(t=='l') n3++;
else if(t=='t') n4++;
}
while(1){
if(n1){
cout<<"G";
n1--;
}
if(n2){
cout<<"P";
n2--;
}
if(n3){
cout<<"L";
n3--;
}
if(n4){
cout<<"T";
n4--;
}
if(!n1&&!n2&!n3&!n4) break;
}
return 0;
}
L1-024 后天
#include<bits/stdc++.h>
using namespace std;
int main(){
int d;
cin>>d;
int t=d+2;
if(t>7) t%=7;
cout<<t;
}
L1-025 正整数A+B
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
bool fa=true,fb=true;
cin>>a;
//输入不注意的话样例三过不去
getchar();
getline(cin,b);
long long sa=0,sb=0;
for(int i=0;i<a.size();i++){
if(isdigit(a[i]))
sa=sa*10+a[i]-'0';
else{
fa=false;
break;
}
}
if(fa&&sa<=1000&&sa>=1) cout<<sa<<" + ";
else{
fa=false;
cout<<"?"<<" + ";
}
for(int i=0;i<b.size();i++){
if(isdigit(b[i]))
sb=sb*10+b[i]-'0';
else{
fb=false;
break;
}
}
if(fb&&sb<=1000&&sb>=1) cout<<sb<<" = ";
else{
fb=false;
cout<<"?"<<" = ";
}
if(fa&&fb) cout<<sa+sb<<endl;
else cout<<"?"<<endl;
}
L1-026 I Love GPLT
#include<bits/stdc++.h>
using namespace std;
int main(){
string a;
a="I Love GPLT";
for(int i=0;i<a.size();i++)
cout<<a[i]<<endl;
return 0;
}
L1-027 出租
#include<bits/stdc++.h>
using namespace std;
bool st[15];
int main(){
string s;
int a[11],b[15];
cin>>s;
for(int i=0;i<s.size();i++){
int t=s[i]-'0';
st[t]=true;
}
int cnt=0;
for(int i=9;i>=0;i--)
if(st[i])
a[cnt++]=i;
cout<<"int[] arr = new int[]{";
for(int i=0;i<cnt;i++)
if(i==0) cout<<a[i];
else cout<<","<<a[i];
cout<<"};"<<endl;
int count=0;
for(int i=0;i<s.size();i++){
int t=s[i]-'0';
for(int j=0;j<cnt;j++){
if(t==a[j])
b[count++]=j;
}
}
cout<<"int[] index = new int[]{";
for(int i=0;i<count;i++){
if(i==0) cout<<b[i];
else cout<<","<<b[i];
}
cout<<"};"<<endl;
return 0;
}
巧用map,map会自动从小到大排序
#include<bits/stdc++.h>
using namespace std;
map<char,int> mp;//map每个元素看成是键值对的结构体
int main(){
string s;
cin>>s;
for(int i=0;i<s.size();i++){
++mp[s[i]];
}
cout<<"int[] arr = new int[]{";
cout<<mp.rbegin()->first;//这里rbegin是指针
for(auto i=++mp.rbegin();i!=mp.rend();i++){
cout<<","<<i->first;
}
cout<<"};\n";
int cnt=0;
for(auto i=mp.rbegin();i!=mp.rend();i++,cnt++){
i->second=cnt;
}
cout<<"int[] index = new int[]{";
cout<<mp[s[0]];
for(int i=1;i<s.size();i++){
cout<<","<<mp[s[i]];
}
cout<<"};";
return 0;
}
L1-028 判断素数
#include<bits/stdc++.h>
using namespace std;
bool isprime(long long n){
if(n<2) return false;
for(long long i=2;i<=n/i;i++){
if(n%i==0)
return false;
}
return true;
}
int main(){
int n;
long long x;
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
if(isprime(x))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
L1-029 是不是太胖了
#include<bits/stdc++.h>
using namespace std;
int main(){
double h;
cin>>h;
double ans=(h-100)*0.9*2;
printf("%.1lf",ans);
return 0;
}
L1-030 一帮一
#include<bits/stdc++.h>
using namespace std;
struct node{
int sex;
string name;
bool f;
}no[100];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>no[i].sex>>no[i].name;
}
for(int i=0;i<n;i++){
if(!no[i].f){
cout<<no[i].name<<" ";
int t=1-no[i].sex;
for(int j=n-1;j>=0;j--)
if(no[j].sex==t&&!no[j].f){
cout<<no[j].name<<endl;
no[j].f=true;
break;
}
no[i].f=true;
}
else continue;
}
return 0;
}
L1-031 到底是不是太胖了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,h,w;
cin>>n;
for(int i=0;i<n;i++){
cin>>h>>w;
double ans=(h-100)*0.9*2;
if(fabs(ans-w)<ans*0.1)
cout<<"You are wan mei!"<<endl;
else if(w>ans){
cout<<"You are tai pang le!"<<endl;
}else cout<<"You are tai shou le!"<<endl;
}
return 0;
}
L1-032 Left-pad
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char ch;
string s;
cin>>n>>ch;
getchar();
getline(cin,s);
if(s.size()>n){
s=s.substr(s.size()-n);
cout<<s;
}else{
for(int i=0;i<(n-s.size());i++)
cout<<ch;
cout<<s;
}
return 0;
}
L1-033 出生年
#include<bits/stdc++.h>
using namespace std;
set<int> s;
int main(){
int y,n;
cin>>y>>n;
int cnt=0;
for(int i=y;;i++){
int a,b,c,d;
a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
s.insert(a);
s.insert(b);
s.insert(c);
s.insert(d);
if(s.size()==n){
cout<<cnt<<" ";
printf("%04d",i);
break;
}
cnt++;
s.clear();
}
return 0;
}
L1-034 点赞
#include<bits/stdc++.h>
using namespace std;
int st[1010];
int main(){
int n,k;
cin>>n;
for(int i=0;i<n;i++){
cin>>k;
for(int j=0;j<k;j++){
int x;
cin>>x;
st[x]++;
}
}
int maxn=0,ans;
for(int i=1;i<=1000;i++){
if(st[i]>=maxn){
maxn=st[i];
ans=i;
}
}
cout<<ans<<" "<<maxn;
return 0;
}
L1-035 情人节
#include<bits/stdc++.h>
using namespace std;
bool f1,f2;
int main(){
string ans1,ans2;
string s;
int cnt=0;
while(getline(cin,s),s!="."){
cnt++;
if(cnt==2){
f1=true;
ans1=s;
}
if(cnt==14){
f2=true;
ans2=s;
}
}
if(f1&&f2) printf("%s and %s are inviting you to dinner...\n",ans1.c_str(),ans2.c_str());
else if(f1&&!f2) printf("%s is the only one for you...\n",ans1.c_str());
else if(!f2&&!f2) printf("Momo... No one is for you ...\n");
return 0;
}
L1-036 A乘以B
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a*b<<endl;
return 0;
}
L1-037 A除以B
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
if(b==0){
cout<<a<<"/"<<b<<"="<<"Error";
}else if(b>0){
double ans=1.0*a/b;
printf("%d/%d=%.2lf",a,b,ans);
}else {
double ans=1.0*a/b;
printf("%d/(%d)=%.2lf",a,b,ans);
}
}
L1-038 新世界
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"Hello World"<<endl;
cout<<"Hello New World"<<endl;
return 0;
}
L1-039 古风排版
#include<bits/stdc++.h>
using namespace std;
int main(){
int row;
cin>>row;
string s;
getchar();
getline(cin,s);//输入问题注意
char a[1000][1000];
int len=s.size();
// int col=(len+row-1)/row;
int col=ceil(1.0*(len)/row);//上取整
// cout<<row<<" "<<col<<" "<<len<<endl;
int k=0,cnt=0;
for(int i=col;i>=1;i--){
for(int j=1;j<=row;j++){
if(cnt>=len){
a[j][i]=' ';
}else{
a[j][i]=s[cnt++];
}
}
}
for(int i=1;i<=row;i++){
for(int j=1;j<=col;j++)
cout<<a[i][j];
cout<<endl;
}
}
L1-040 最佳情侣身高差
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
char sex;
double h;
for(int i=0;i<n;i++){
cin>>sex>>h;
double ans;
if(sex=='M') ans=1.0*h/1.09;
else ans=1.0*h*1.09;
printf("%.2lf\n",ans);
}
return 0;
}
L1-041 寻找250
#include<bits/stdc++.h>
using namespace std;
int main(){
int x,cnt=0;
bool f=false;
while(cin>>x){
cnt++;
if(x==250&&!f){
cout<<cnt<<endl;
f=true;
}
}
return 0;
}
L1-042 日期格式化
#include<bits/stdc++.h>
using namespace std;
int main(){
int y,m,d;
scanf("%d-%d-%d",&m,&d,&y);
printf("%04d-%02d-%02d",y,m,d);
return 0;
}
L1-043 阅览室
#include<bits/stdc++.h>
using namespace std;
set<int> s;
struct node{
int bh,bm;
}no[1005];
int main(){
int n;
cin>>n;
int cnt=0;
int sum=0;
while(n){
int index,h,m;
char ch,ip;
cin>>index>>ch>>h>>ip>>m;
// scanf("%d %c %d:%d",&index,&ch,&h,&m);
// cin >> index >> ch;
// scanf("%d:%d",&h,&m);
if(index==0){
if(cnt==0) cout<<"0 0"<<endl;
else cout<<cnt<<" "<<round(1.0*sum/cnt)<<endl;//精确需要四舍五入
n--;
cnt=0,sum=0;
s.clear();
memset(no,0,sizeof no);
continue;
}
else{
if(ch=='S'){
s.insert(index);
no[index]={h,m};
}
if(ch=='E'){
if(s.count(index)){
cnt++;
sum+=((h*60+m)-(no[index].bh*60+no[index].bm));
s.erase(index);//注意要再给它移出去,一个人还书后再借书
}
}
}
}
return 0;
}
L1-044 稳赢
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
n++;
getchar();
int cnt=0;
string s;
while(getline(cin,s),s!="End"){
cnt++;
// cout<<s<<endl;
if(cnt%n==0){
cout<<s<<endl;
}else{
if(s=="ChuiZi")//尽量复制粘贴
cout<<"Bu"<<endl;
else if(s=="JianDao")
cout<<"ChuiZi"<<endl;
else if(s=="Bu")
cout<<"JianDao"<<endl;
}
}
return 0;
}
L1-045 宇宙无敌大招呼
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
printf("Hello %s",s.c_str());
return 0;
}
L1-046 整除光棍
高精度减法
#include<bits/stdc++.h>
using namespace std;
vector<int> sub(vector<int> a,int b,int &r){
vector<int> res;
int t=0;
for(int i=a.size()-1;i>=0;i--){
t=t*10+a[i];
res.push_back(t/b);
t%=b;
}
r=t;
reverse(res.begin(),res.end());
while(res.size()>1&&res.back()==0) res.pop_back();
return res;
}
int main(){
int x;
cin>>x;
for(int i=1;;i++){
vector<int> a(0);
for(int j=0;j<i;j++)
a.push_back(1);
int r;
auto ans=sub(a,x,r);
if(r==0){
for(int j=ans.size()-1;j>=0;j--)
cout<<ans[j];
cout<<" "<<i;
break;
}
}
return 0;
}
减法的技巧
#include<bits/stdc++.h>
using namespace std;
int main(){
int sum=1,x,cnt=0;
cin>>x;
bool flag=false;
while(1){
if(sum/x>=1){
cout<<sum/x;
flag=true;
}else if(flag) cout<<'0';
sum%=x;
cnt++;
if(sum%x==0) break;
sum=sum*10+1;
}
cout<<" "<<cnt;
return 0;
}
L1-047 装睡
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
string name;
int h,m;
cin>>name>>h>>m;
if(h>20||h<15||m>70||m<50)
cout<<name<<endl;
}
return 0;
}
L1-048 矩阵A乘以B
#include<bits/stdc++.h>
using namespace std;
int main(){
int r1,c1,r2,c2;
cin>>r1>>c1;
int a[110][110],b[110][110],s[110][110];
for(int i=1;i<=r1;i++)
for(int j=1;j<=c1;j++)
cin>>a[i][j];
cin>>r2>>c2;
for(int i=1;i<=r2;i++)
for(int j=1;j<=c2;j++)
cin>>b[i][j];
if(c1!=r2){
printf("Error: %d != %d",c1,r2);
return 0;
}
cout<<r1<<" "<<c2<<endl;
for(int i=1;i<=r1;i++)
for(int j=1;j<=c2;j++)
for(int k=1;k<=c1;k++)
s[i][j]+=(a[i][k]*b[k][j]);
for(int i=1;i<=r1;i++){
for(int j=1;j<=c2;j++)
if(j==1) cout<<s[i][j];
else cout<<" "<<s[i][j];//行尾没用空格
cout<<endl;
}
return 0;
}
L1-049 天梯赛座位分配
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[105][11][11];//学校,队伍,人编号
cin>>n;
int t[105];
int maxn=0;
for(int i=1;i<=n;i++){
cin>>t[i];
maxn=max(maxn,t[i]);
}
int pr=0;
int cnt=0;
for(int i=1;i<=maxn;i++){
for(int j=1;j<=10;j++){
for(int k=1;k<=n;k++){
if(t[k]>=i){
if(pr!=k){
a[k][i][j]=++cnt;
}
else{
a[k][i][j]=cnt+2;
cnt+=2;
}
pr=k;
}
}
}
}
for(int i=1;i<=n;i++){
cout<<"#"<<i<<endl;
for(int j=1;j<=t[i];j++){
for(int k=1;k<=10;k++){
if(k==1) cout<<a[i][j][k];
else cout<<" "<<a[i][j][k];
}
cout<<endl;
}
}
}
L1-050 倒数第N个字符串
进制知识和减法
#include<bits/stdc++.h>
using namespace std;
int main(){
int l,n;
cin>>l>>n;
n--;
int a[10005],b[100005],cnt=0;
while(n){
a[cnt++]=n%26;
n/=26;
}
for(int i=0;i<l;i++)
b[i]=25;
for(int i=0;i<l;i++){
if(a[i]>b[i]){
b[i+1]--;
b[i]=(b[i]+26-a[i]);
}else b[i]=b[i]-a[i];
}
for(int i=l-1;i>=0;i--){
printf("%c",b[i]+'a');
}
}
L1-051 打折
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
double ans=1.0*a*b/10;
printf("%.2lf",ans);
return 0;
}
L1-052 2018我们要赢
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"2018"<<endl;
cout<<"wo3 men2 yao4 ying2 !";
return 0;
}
L1-053 电子汪
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int ans=a+b;
for(int i=0;i<ans;i++)
cout<<"Wang!";
return 0;
}
L1-054 福到了
矩阵转置
#include<bits/stdc++.h>
using namespace std;
int main(){
char ch;
int n;
char a[110][110],b[110][110];
cin>>ch>>n;
getchar();
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%c",&a[i][j]);//不要用cin输入
}
getchar();
}
// for(int i=1;i<=n;i++){
// for(int j=1;j<=n;j++)
// cout<<a[i][j];
// cout<<endl;
// }
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
b[i][j]=a[n-i+1][n-j+1];
bool f=false;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=b[i][j]){
f=true;
break;
}
}
}
if(!f) cout<<"bu yong dao le"<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
if(b[i][j]!=' '){
cout<<ch;
}else cout<<' ';
cout<<endl;
}
return 0;
}
L1-055 谁是赢家
#include<bits/stdc++.h>
using namespace std;
int main(){
int pa,pb;
cin>>pa>>pb;
int cnt=0;
for(int i=0;i<3;i++){
int x;
cin>>x;
if(x==0) cnt++;
}
if(pa>pb&&cnt!=0){
printf("The winner is a: %d + %d",pa,cnt);
}else if(pa<pb&&cnt==3)
printf("The winner is a: %d + %d",pa,cnt);
else if(pb>pa&&cnt!=3)
printf("The winner is b: %d + %d",pb,3-cnt);
else if(pb<pa&&cnt==0)
printf("The winner is b: %d + %d",pb,3-cnt);
return 0;
}
L1-056 猜数字
#include<bits/stdc++.h>
using namespace std;
struct node{
string name;
int c;
}no[10100];
int main(){
int n;
cin>>n;
long long sum=0;
for(int i=0;i<n;i++){
cin>>no[i].name>>no[i].c;
sum+=no[i].c;
}
int av=sum/n/2;
cout<<av<<" ";
int minn=100000;
string ans;
for(int i=0;i<n;i++){
if(abs(av-no[i].c)<minn){
ans=no[i].name;
minn=abs(av-no[i].c);
}
}
cout<<ans;
return 0;
}
L1-057 PTA使我精神焕发
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"PTA shi3 wo3 jing1 shen2 huan4 fa1 !";
return 0;
}
L1-058 6翻了
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
for(int i=0;i<s.size();i++){
if(s[i]=='6'){
int cnt=0;
while(s[i+cnt]=='6') cnt++;
if(cnt>9){
// s=s.substr(0,i)+"27"+s.substr(i+cnt);
s.replace(i,cnt,"27");
i++;
}
else if(cnt>3)
// s=s.substr(0,i)+"9"+s.substr(i+cnt);
s.replace(i,cnt,"9");
}
}
cout<<s;
}
L1-059 敲笨钟
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
// getchar();
cin.ignore();
for(int i=0;i<n;i++){
string s;
getline(cin,s);
if(s.find(',') >= 3 && s.find('.') >= 3 //需要这句,不然运行错误
&&s.substr(s.find(',')-3,3)=="ong"
&&s.substr(s.find('.')-3,3)=="ong"){
int cnt=0;
for(int j=s.size()-1;j>=0;j--){
if(s[j]==' ') cnt++;
if(cnt==3){
s=s.substr(0,j)+" qiao ben zhong.";
break;
}
}
cout<<s<<endl;
}else{
cout<<"Skipped"<<endl;
}
}
return 0;
}
L1-060 心理阴影面积
#include<bits/stdc++.h>
using namespace std;
int main(){
int x,y;
cin>>x>>y;
cout<<(x-y)*100/2;
return 0;
}
L1-061 新胖子公式
#include<bits/stdc++.h>
using namespace std;
int main(){
double t,s;
cin>>t>>s;
double ans=t/s;
ans/=s;
printf("%.1lf\n",ans);
if(ans>25){
cout<<"PANG";
}else cout<<"Hai Xing";
return 0;
}
L1-062 幸运彩票
巧用ascall码
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[7];
int n;
cin>>n;
while(n--){
cin>>a;
if(a[0]+a[1]+a[2]==a[3]+a[4]+a[5])//0~9的ascall为48~57
cout<<"You are lucky!"<<endl;
else cout<<"Wish you good luck."<<endl;
}
return 0;
}
常规做法
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int x,cnt=0,s1=0,s2=0;
cin>>x;
while(x){
cnt++;
if(cnt<4) s1+=(x%10);
else s2+=(x%10);
x/=10;
}
if(s1==s2) cout<<"You are lucky!"<<endl;
else cout<<"Wish you good luck."<<endl;
}
return 0;
}
L1-063 吃鱼还是吃肉
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int sex,h,w;
cin>>sex>>h>>w;
if(sex==1){
if(h>130) cout<<"ni li hai!"<<" ";
else if(h==130) cout<<"wan mei!"<<" ";
else cout<<"duo chi yu!"<<" ";
if(w>27) cout<<"shao chi rou!"<<endl;
else if(w==27) cout<<"wan mei!"<<endl;
else cout<<"duo chi rou!"<<endl;
}
else{
if(h>129) cout<<"ni li hai!"<<" ";
else if(h==129) cout<<"wan mei!"<<" ";
else cout<<"duo chi yu!"<<" ";
if(w>25) cout<<"shao chi rou!"<<endl;
else if(w==25) cout<<"wan mei!"<<endl;
else cout<<"duo chi rou!"<<endl;
}
}
return 0;
}
L1-064 估值一亿的AI核心代码
常规做法
#include<bits/stdc++.h>
using namespace std;
string s;
bool check(int l,int r){
if((l<0||s[l]==' '||!isalnum(s[l]))
&&(r>=s.size()||s[r]==' '||ispunct(s[r])))
return true;
return false;
}
int main(){
int n;
cin>>n;
getchar();
while(n--){
getline(cin,s);
cout<<s<<endl<<"AI: ";
for(int i=0;i<s.size();i++)//输入全是空格的情况,测试点4
if(s[i]==' '){
if(i==s.size()-1) s="";
continue;
}
else{
s=s.substr(i);
break;
}
for(int i=s.size()-1;i>=0;i--){
if(s[i]==' '){
continue;
}
else{
s=s.substr(0,i+1);
break;
}
}
int cnt=0;
for(int i=0;i<s.size();i++){
if(ispunct(s[i])){
int t=i-1,count=0;
if(t<0) continue;
while(isspace(s[t-count])){
count++;
}
if(count>0) s=s.substr(0,i-count)+s.substr(i);
}
}
for(int i=0;i<s.size();i++)
if(isspace(s[i])){
cnt=0;
while(isspace(s[i+cnt])){
cnt++;
}
if(cnt>1){
s=s.substr(0,i+1)+s.substr(i+cnt);
}
}
for(int i=0;i<s.size();i++)
if(isupper(s[i])&&s[i]!='I')
s[i]=tolower(s[i]);
for(int i=0;i<s.size();i++)
if(s[i]=='?') s=s.substr(0,i)+"!"+s.substr(i+1);
for(int i=0;i<s.size();i++)
if(check(i-1,i+1)&&s.substr(i,1)=="I")
s.replace(i,1,"yoU");//can me,测试点1
for(int i=0;i<s.size();i++)
if(check(i-1,i+2)&&s.substr(i,2)=="me")
s.replace(i,2,"yoU");
for(int i=0;i<s.size();i++)
if(check(i-1,i+7)&&s.substr(i,7)=="can you")
s.replace(i,7,"I can");
for(int i=0;i<s.size();i++)
if(check(i-1,i+9)&&s.substr(i,9)=="could you")
s.replace(i,9,"I could");
for(int i=0;i<s.size();i++)
if(isupper(s[i])&&s[i]!='I')
s[i]=tolower(s[i]);
cout<<s<<endl;
}
return 0;
}
用regex_replace函数
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
string s;
cin>>n;
getchar();
while(getline(cin,s)){
cout<<s<<endl<<"AI: ";
s=regex_replace(s,regex(R"(\s+)")," ");
s=regex_replace(s,regex(R"(^\s+|\s+$|\s+(?=\W))"),"");
s=regex_replace(s,regex(R"(\bI\b)"),"mark");
for(int i=0;i<s.size();i++)
if(s[i]!='I') s[i]=tolower(s[i]);
s=regex_replace(s,regex(R"(\bcan you\b)"),"I can");
s=regex_replace(s,regex(R"(\bcould you\b)"),"I could");
s=regex_replace(s,regex(R"(\bme\b)"),"you");//单词me
s=regex_replace(s,regex(R"(mark)"),"you");
s=regex_replace(s,regex(R"(\?)"),"!");
cout<<s<<endl;
}
return 0;
}
L1-065 嫑废话上代码
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"Talk is cheap. Show me the code.";
return 0;
}
L1-066 猫是液体
#include<bits/stdc++.h>
using namespace std;
int main(){
int c,h,g;
cin>>c>>h>>g;
cout<<c*h*g<<endl;
return 0;
}
L1-067 洛希极限
#include<bits/stdc++.h>
using namespace std;
int main(){
double a,s,ans;
int b;
cin>>a>>b>>s;
if(b==0){
ans=a*2.455;
}
else{
ans=a*1.26;
}
printf("%.2lf ",ans);
if(ans>s)
cout<<"T_T";
else
cout<<"^_^";
return 0;
}
L1-068 调和平均
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
double x,ans=0;
for(int i=0;i<n;i++){
cin>>x;
ans+=(1.0/x);
}
ans=(ans/n);
ans=1.0/ans;
printf("%.2lf",ans);
return 0;
}
L1-069 胎压监测
#include<bits/stdc++.h>
using namespace std;
int main(){
int n[6],m,t;
int maxn=0;
for(int i=1;i<=4;i++){
cin>>n[i];
maxn=max(maxn,n[i]);
}
cin>>m>>t;
set<int> s;
for(int i=1;i<=4;i++){
if((maxn-n[i])>t)
s.insert(i);
if(n[i]<m)
s.insert(i);
}
if(s.size()==0){
cout<<"Normal"<<endl;
}else if(s.size()==1){
for(int i=1;i<=4;i++)
if(s.count(i)){
printf("Warning: please check #%d!",i);
}
}else
cout<<"Warning: please check all the tires!";
return 0;
}
L1-070 吃火锅
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int cnt=0,cn=0,ans;
bool f=false;
while(getline(cin,s),s!="."){
cn++;
if(s.find("chi1 huo3 guo1")!=-1){
cnt++;
if(!f){
f=true;
ans=cn;
}
}
}
if(cnt) cout<<cn<<endl<<ans<<" "<<cnt;
else cout<<cn<<endl<<"-_-#";
return 0;
}
L1-071 前世档案
进制知识
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
string s;
cin>>n>>m;
for(int i=0;i<m;i++){
int sum=1;
cin>>s;
reverse(s.begin(),s.end());
for(int i=0;i<s.size();i++){
if(s[i]=='n')
sum+=(1<<i);
}
cout<<sum<<endl;
}
}
L1-072 刮刮彩票
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[4][4];
int st[10]={0};//初始化最好弄全局变量
int r;
int x,y;
for(int i=1;i<4;i++)
for(int j=1;j<4;j++){
cin>>a[i][j];
st[a[i][j]]=1;
if(a[i][j]==0){
x=i;y=j;
}
}
for(int i=1;i<=9;i++){
if(st[i]==0){
a[x][y]=i;
}
}
for(int i=0;i<3;i++){
cin>>x>>y;
cout<<a[x][y]<<endl;
}
int sl;
cin>>sl;
int ans=0;
if(sl<=3&&sl>=1){
for(int i=1;i<4;i++)
ans+=a[sl][i];
}else if(sl>=4&&sl<=6){
sl=sl-3;
for(int i=1;i<4;i++)
ans+=a[i][sl];
}else if(sl==7){
for(int i=1;i<4;i++)
ans+=a[i][i];
}else{
for(int i=1;i<4;i++)
ans+=a[i][4-i];
}
int t[] = {0,
0,0,0,0,0,
10000,36,720,360,80,
252,108,72,54,180,
72,180,119,36,306,
1080,144,1800,3600};
cout<<t[ans]<<endl;
return 0;
}
L1-073 人与神
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"To iterate is human, to recurse divine.";
return 0;
}
L1-074 两小时学完C语言
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
int ans=a-(b*c);
cout<<ans;
return 0;
}
L1-075 强迫症
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int> a;
int n;
cin>>n;
while(n){
a.push_back(n%10);
n/=10;
}
int year,month;
month=a[0]+a[1]*10;
if(a.size()==6){
year=a[2]+a[3]*10+a[4]*100+a[5]*1000;
}else{
year=a[2]+a[3]*10;
if(year<22) year=2000+year;
else year+=1900;
}
printf("%d-%02d",year,month);
return 0;
}
L1-076 降价提醒机器人
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
double x;
cin>>x;
if(x<m)
printf("On Sale! %.1lf\n",x);
}
return 0;
}
L1-077 大笨钟的心情
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[24];
for(int i=0;i<24;i++)
cin>>a[i];
int x;
while(cin>>x){
if(x<0||x>23) break;
cout<<a[x]<<" ";
if(a[x]>50) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
L1-078 吉老师的回归
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
string s;
getchar();
bool f=false;
for(int i=1;i<=n;i++){
getline(cin,s);
if(s.find("qiandao")==-1&&s.find("easy")==-1) m--;
if(m<0&&!f){
cout<<s<<endl;
f=true;
}
}
if(!f) cout<<"Wo AK le"<<endl;
return 0;
}
L1-079 天梯赛的善良
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[20005];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
// sort(a,a+n);
int mn=*min_element(a,a+n),mx=*max_element(a,a+n);
int cn=0,cx=0;
// for(int i=0;i<n;i++){
// if(a[i]==mn) cn++;
// if(a[i]==mx) cx++;
// }
cn=count(a,a+n,mn);//时间复杂度位O(n)
cx=count(a,a+n,mx);
cout<<mn<<" "<<cn<<endl<<mx<<" "<<cx;
return 0;
}
L1-080 乘法口诀数列
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100500],n;
cin>>a[1]>>a[2]>>n;
int cnt=3;
vector<int> t;
for(int i=3;;i++){
int ans=a[i-1]*a[i-2];
t.clear();
if(cnt>n) break;
if(ans==0){
a[cnt++]=0;
continue;
}
while(ans){//当ans为0时,不会进入循环,数组就不会添加
t.push_back(ans%10);
ans/=10;
}
for(int j=t.size()-1;j>=0;j--) a[cnt++]=t[j];
// if(ans>9){
// a[cnt++]=ans/10;
// }
// a[cnt++]=ans%10;
// if(cnt>n) break;
}
cout<<a[1];
for(int i=2;i<=n;i++)
cout<<" "<<a[i];
return 0;
}
L1-081 今天我要赢
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"I'm gonna win! Today!"<<endl;
printf("2022-04-23");
}
L1-082 种钻石
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,v;
cin>>n>>v;
cout<<n/v;
}
L1-083 谁能进图书馆
#include<bits/stdc++.h>
using namespace std;
int main(){
int t1,t2,n1,n2;
cin>>t1>>t2>>n1>>n2;
if(n1>=t1&&n2>=t1){
printf("%d-Y %d-Y\n",n1,n2);
printf("huan ying ru guan");
}else if(n1<t1&&n2<t1){
printf("%d-N %d-N\n",n1,n2);
printf("zhang da zai lai ba");
}else if(n1>=t1&&n2<t1){
if(n1>=t2){
printf("%d-Y %d-Y\n",n1,n2);
printf("qing 1 zhao gu hao 2");
}
else{
printf("%d-Y %d-N\n",n1,n2);
printf("1: huan ying ru guan");
}
}else if(n1<t1&&n2>=t1){
if(n2>=t2){
printf("%d-Y %d-Y\n",n1,n2);
printf("qing 2 zhao gu hao 1");
}
else{
printf("%d-N %d-Y\n",n1,n2);
printf("2: huan ying ru guan");
}
}
return 0;
}
L1-084 拯救外星人
#include<bits/stdc++.h>
using namespace std;
int main(){
long long s=1;
int a,b;
cin>>a>>b;
int n;
n=a+b;
for(int i=1;i<=n;i++)
s*=i;
cout<<s;
}
L1-085 试试手气
#include<bits/stdc++.h>
using namespace std;
int t[8][8];
int main(){
int n;
int x;
for(int i=1;i<=6;i++){
cin>>x;
t[i][x]=1;
}
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=6;j++){
for(int k=6;k>=1;k--){
if(!t[j][k]){
t[j][k]=1;
if(i==n){
if(j==1) cout<<k;
else cout<<" "<<k;
}
break;
}
}
}
}
return 0;
}
L1-086 斯德哥尔摩火车上的题
#include<bits/stdc++.h>
using namespace std;
string s1,s2,ans1,ans2;
int main(){
getline(cin,s1);
getline(cin,s2);
for(int i=1;i<s1.size();i++){
if(s1[i]%2==s1[i-1]%2)
ans1+=max(s1[i],s1[i-1]);
}
for(int i=1;i<s2.size();i++){
if(s2[i]%2==s2[i-1]%2)
ans2+=max(s2[i],s2[i-1]);
}
if(ans1==ans2) cout<<ans1;
else cout<<ans1<<endl<<ans2<<endl;
return 0;
}
L1-087 机工士姆斯塔迪奥
#include<bits/stdc++.h>
using namespace std;
int row[100005],col[100005];
int main(){
int n,m,q;
cin>>n>>m>>q;
long long sum=n*m;
int cn1=0,cn2=0;
while(q--){
int t,c;
cin>>t>>c;
if(t==1){
if(!col[c]){
col[c]++;
sum-=n;
cn1++;
}
}else{
if(!row[c]){
row[c]++;
sum-=m;
cn2++;
}
}
}
if(cn1&&cn2){
sum+=cn1*cn2;
}
cout<<sum<<endl;
return 0;
}
L1-088 静静的推荐
#include<bits/stdc++.h>
using namespace std;
struct node{
int t,p;
}a[100005];
bool cmp(struct node a,struct node b){
if(a.t!=b.t)
return a.t<b.t;
return a.p<b.p;
}
int main(){
int n,k,s;
cin>>n>>k>>s;
for(int i=0;i<n;i++){
int t,p;
cin>>t>>p;
a[i]={t,p};
}
sort(a,a+n,cmp);
int sum=0,st[100005]={0};
for(int i=0;i<n;i++){
if(a[i].t>=175){
if(a[i].p>=s){
sum++;
continue;
}
st[a[i].t]++;
}
}
for(int i=175;i<=290;i++){
if(st[i]>=k) sum+=k;
else sum+=st[i];
}
cout<<sum<<endl;
return 0;
}
L1-089 最好的文档
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"Good code is its own best documentation.";
return 0;
}
L1-090 什么是机器学习
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int ans=a+b;
cout<<ans-16<<endl;
cout<<ans-3<<endl;
cout<<ans-1<<endl;
cout<<ans;
return 0;
}
L1-091 程序员买包子
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k;
string x;
cin>>n>>x>>m>>k;
if(k==n){
printf("mei you mai %s de",x.c_str());
}else if(k==m){
printf("kan dao le mai %s de",x.c_str());
}else printf("wang le zhao mai %s de",x.c_str());
return 0;
}
L1-092 进化论
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int a,b,c;
cin>>a>>b>>c;
if(c==a*b) cout<<"Lv Yan"<<endl;
else if(c==a+b) cout<<"Tu Dou"<<endl;
else cout<<"zhe du shi sha ya!"<<endl;
}
return 0;
}
L1-093 猜帽子游戏
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[110];
for(int i=0;i<n;i++){
cin>>a[i];
}
int k;
cin>>k;
while(k--){
bool f1=false,f2=false;
int x;
for(int i=0;i<n;i++){
cin>>x;
if(x!=a[i]&&x!=0){
f2=true;
// break;不能要,不然会影响输入
}
else if(x==0) continue;
else if(x==a[i]) f1=true;
}
if(f1&&!f2) cout<<"Da Jiang!!!"<<endl;
else cout<<"Ai Ya"<<endl;
}
return 0;
}
L1-094 剪切粘贴
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
int n;
cin>>n;
while(n--){
int l,r;
string a,b;
cin>>l>>r>>a>>b;
l--,r--;
string cp=s.substr(l,r-l+1);
s=s.substr(0,l)+s.substr(r+1);
string t=a+b;
int p=s.find(t);
if(p==-1){
s+=cp;
}else{
s=s.insert(p+a.size(),cp);
}
}
cout<<s<<endl;
}
L1-095 分寝室
#include<bits/stdc++.h>
using namespace std;
int main(){
int n0,n1,n;
cin>>n0>>n1>>n;
int mn=1000000,f=false,p;
for(int i=1;i<n&&i<n0&&(n-i)<n1;i++){
if(n0%i==0&&(n1%(n-i)==0)){
if(mn>abs(n0/i-n1/(n-i))){
mn=abs(n0/i-n1/(n-i));
p=i;
f=true;
}
}
}
if(!f) printf("No Solution");
else{
cout<<p<<" "<<n-p<<endl;
}
return 0;
}
L1-096 谁管谁叫爹
#include<bits/stdc++.h>
using namespace std;
int deal(long long n){
if(n==0) return 0;
return n%10+deal(n/10);
}
int main(){
int n;
cin>>n;
long long a,b,sa,sb;
while(n--){
cin>>a>>b;
sa=deal(a);
sb=deal(b);
// cout<<sa<<" "<<sb<<endl;
if(a%sb==0&&b%sa==0){
if(a>b) cout<<"A"<<endl;
else cout<<"B"<<endl;
}else if(a%sb==0){
cout<<"A"<<endl;
}else if(b%sa==0){//被整除==0
cout<<"B"<<endl;
}else if(a%sb&&b%sa){
if(a>b) cout<<"A"<<endl;
else cout<<"B"<<endl;
}
}
return 0;
}
L1-097 编程解决一切
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"Problem? The Solution: Programming.";
return 0;
}
L1-098 再进去几个人
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<(b-a);
return 0;
}
L1-099 帮助色盲
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
if(b==1){
cout<<"-"<<endl;
if(a==0) cout<<"stop";
else if(a==2) cout<<"stop";
else cout<<"move";
}else{
if(a==0) cout<<"biii"<<endl<<"stop";
else if(a==1) cout<<"dudu"<<endl<<"move";
else cout<<"-"<<endl<<"stop";
}
}
L1-100 四项全能
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,m;
int main(){
cin>>n>>m;
int sum=0,x;
for(int i=0;i<m;i++){
cin>>x;
sum+=x;
}
cout<<max(0,sum-n*(m-1));
return 0;
}
L1-101 别再来这么多猫娘了!
//先不能替换,而是要换成别的字符串如-_-,最后再把-_-替换指定字符串
#include<bits/stdc++.h>
using namespace std;
vector<string> ve;
int main(){
int n,m,k,cnt=0;
string t,s;
cin>>n;
getchar();
for(int i=0;i<n;i++){
getline(cin,t);
ve.emplace_back(t);
}
cin>>k;
getchar();
getline(cin,s);
for(int i=0;i<n;i++){
t=ve[i];
int pos=s.find(t),len=t.size();
while(pos!=-1){
s.erase(pos,len);
s.insert(pos,"-_-");
cnt++;
pos=s.find(t,pos);
}
}
if(cnt>=k){
cout<<cnt<<endl<<"He Xie Ni Quan Jia!";
}else{
t="-_-";
int pos=s.find(t),len=t.size();
while(pos!=-1){
s.replace(pos,len,"<censored>");
pos=s.find(t,pos);
}
cout<<s;
}
return 0;
}
L1-102 兰州牛肉面
#include<bits/stdc++.h>
using namespace std;
const int N=110;
map<int,int> mp;
double a[N];
int main(){
int n,id,cnt;
double s=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
mp[i]=0;
}
while(cin>>id>>cnt,id){
mp[id]+=cnt;
s+=(a[id]*cnt);
}
for(auto x:mp){
cout<<x.second<<endl;
}
printf("%.2lf",s);
return 0;
}
L1-103 整数的持续性
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a,b;
vector<int> ans;
int gt(int x){
int s=1;
while(x){
int t=x%10;
s*=t;
x/=10;
}
return s;
}
int get(int x){
int num=0;
while(x/10){
x=gt(x);
num++;
}
return num;
}
int main(){
cin>>a>>b;
int mx=0;
for(int i=a;i<=b;i++){
int t=get(i);
if(t>mx){
mx=t;
ans.clear();
ans.push_back(i);
}else if(t==mx){
ans.emplace_back(i);
}
}
cout<<mx<<endl;
for(int i=0;i<ans.size();i++){
if(i) cout<<" ";
cout<<ans[i];
}
return 0;
}
L1-104 九宫格
#include<bits/stdc++.h>
using namespace std;
const int n=9;
int g[n][n];
bool check(set<int> &s){
for(int i=1;i<=n;i++){
if(!s.count(i)){
return true;
}
}
return false;
}
int main(){
int t;cin>>t;
while(t--){
bool f=true;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>g[i][j];
}
}
set<int> st;
for(int i=0;i<n;i++){
st.clear();
for(int j=0;j<n;j++){
if(!st.count(g[i][j])) st.insert(g[i][j]);
}
if(st.size()!=9||check(st)){
f=false;
break;
}
}
for(int j=0;j<n;j++){
st.clear();
for(int i=0;i<n;i++){
if(!st.count(g[i][j])) st.insert(g[i][j]);
}
if(st.size()!=9||check(st)){
f=false;
break;
}
}
//敲黑板
set<int> s[9];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
int x=i/3,y=j/3;//是除法 哭死
int id=x*3+y;
s[id].insert(g[i][j]);
}
}
for(int i=0;i<n;i++){
if(s[i].size()!=9||check(s[i])){
f=false;
break;
}
}
cout<<f<<endl;
}
return 0;
}