这几道题真是太简单了,根本没有难度。 第一题 首先先说第一题生日游戏,没给数据范围,很容易想到while循环判断,所以一直循环求和,但是ans刚开始就是小于十的,所以外层while(1),难度2,代码:

#include<bits/stdc++.h>
using namespace std;
int ad(int& x){
	int ad=0;
	while(x){
		ad+=x%10;
		x/=10;
	}
	return ad;
}
int main(){
	int y,m,d,n,ans;
	cin>>y>>m>>d;
	n=n+ad(y)+ad(m)+ad(d);
	while(1){
		ans+=ad(n);
		if(ans<10) break;
		n=ans;
		ans=0;
	}
	cout<<ans<<endl;
	return 0;
}

第二题 数字翻译,写个string数组,首先判断是否只有个位,再判断是否整十,然后输出就行啦,难度2,代码:

#include<bits/stdc++.h>
using namespace std;
string a[11]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"};
int main(){
	int n;
	cin>>n;
	if(n<10) cout<<a[n];
	else{
		if(n%10==0) cout<<a[n/10]<<" "<<a[10];
		else cout<<a[n/10]<<" "<<a[10]<<" "<<a[n%10];
	}
	return 0;
}

第三题 三角形,很简单,不想说了(,看注释,难度2,代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[2];
	cin>>a[0]>>a[1]>>a[2];
	sort(a,a+2);//懒得排序了( 
	if(a[0]+a[1]<=a[2])/*三角形判断,a-b<c<a+b*/{
		cout<<"error!"<<endl;
		return 0;//不想到时候写错了去对else匹配了( 
	}
	if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2]){
		cout<<"zj"<<endl;
		return 0;
	}
	if(a[0]==a[1] && a[1]==a[2]){
		cout<<"db"<<endl;//等边三角形必须在等腰三角形前 
		return 0;
	}
	if(a[0]==a[1] || a[1]==a[2]){
		cout<<"dy"<<endl;
		return 0;
	}
	cout<<"yb"<<endl;//确实比较屎( 
	return 0;
}

第四题 银行取钱,只需要while来回求差就可以了,难度1,代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,ans=0;
	cin>>n;
	while(n>0){
		n-=3000;//题目描述“超过”后多了一个“多”所以刚开始没看懂 
		ans++;
	}
	cout<<ans<<endl;
	return 0;
}

第五题 余数问题,取余判断就可以啦,可以先判断-1,也可以最后判断,难度1,代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	if(n%3!=0&&n%5!=0&&n%7!=0){
		cout<<-1<<endl;
		return 0;
	}
	if(n%3==0) cout<<3<<" ";
	if(n%5==0) cout<<5<<" "; 
	if(n%7==0) cout<<7<<" ";
	cout<<endl;
	return 0;
}

第六题 余数问题,这个得想一下,分讨照亮世界,写了It was(,难度3,代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[4],b[4],n;
	cin>>n;
	int x=n;
	if(n%100==0){
		cout<<0<<endl;
		return 0;
	}
	for(int i=0;i<3;i++){
		a[i]=x%10;
		x/=10;
	}
	x=n;
	for(int i=2;i>=0;i--){
		b[i]=x%10;
		x/=10;
	}
	sort(a,a+3);
	if(a[0]==0){
		if((n-a[2])%100==0) cout<<0<<endl;
		else cout<<1<<endl;
		return 0;
	}
	if(a[1]==b[1]&&a[2]==b[2]&&a[0]==b[0]) cout<<0<<endl;
	else if(a[1]==b[1]||a[2]==b[2]||a[0]==b[0]) cout<<1<<endl;
	else if(a[1]!=b[1]&&a[2]!=b[2]&&a[0]!=b[0]) cout<<2<<endl;
	return 0;
} 

0 条评论

目前还没有评论...