杭电2031-2040
2031
这是道好题,值得写题解解释一下
#include<stdio.h>
int main()
{
char w[6]= {'A','B','C','D','E','F'};
char a[1000];
int n,r,i,z;
while(~scanf("%d %d",&n,&r))
{
i=0,z=0;
if(n<0)
{
n=-n;
z=1;
}
while(n)
{
a[i++]=n%r;
n/=r;
}
if(z==1)
printf("-");
for(int j=i-1; j>=0; j--)
{
if(a[j]>9)
printf("%c",w[a[j]-10]);
else
printf("%d",a[j]);
}
putchar('\n');
}
return 0;
}
2032
#include<bits/stdc++.h>
#include<iostream>
//爽了,不卡空格
//杨辉三角
using namespace std;
int q[35][35];
int main() {
for(int i=1;i<=30;i++){
for(int j=1;j<=i;j++){
if(j==1||j==i){
q[i][j]=1;
}
else{
q[i][j]=q[i-1][j-1]+q[i-1][j];
}
}
}
int n;
while(cin>>n){
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cout << q[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
return 0;
}
2033
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main() {
int n;
int AH,AM,AS,BH,BM,BS;
cin >> n;
while(n--){
cin >> AH >> AM >> AS >> BH >> BM >> BS;
int A = AH*3600 + AM*60 + AS;
int B = BH*3600 + BM*60 + BS;
int C = A+B;
int H = C/3600;
int M = (C%3600)/60;
int S = (C%3600)%60;
cout << H <<" "<< M <<" "<< S << endl;
}
return 0;
}
2034
这个好像也没写出来
#include<stdio.h>
#include<string.h>
int main() {
char a[100],c;
int n;
scanf("%d",&n);
getchar();
for(int i=0; i<n; i++) {
int k=0;
gets(a);
if(a[0]<'A'||a[0]>'Z'&&a[0]<'_'||a[0]>'_'&&a[0]<'a'||a[0]>'z')
printf("no\n");
else {
for(int j=0; j<strlen(a); j++) {
if(a[j]>='0'&&a[j]<='9'||a[j]>='A'&&a[j]<='Z'||a[j]=='_'||a[j]>='a'&&a[j]<='z')
k++;
else
break;
}
if(k==strlen(a))
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
2035
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main() {
int m,n;
//m是A,n是B
while(cin>>m>>n,m,n) {
int x=1;
for(int i=0;i<n;i++){
x=x*m;
x=x%1000;
}
cout << x << endl;
}
return 0;
}
2036
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
double x[105],y[105];
//需要知道多边形图形的计算公式
int main() {
int n;
double s;
while(cin>>n,n){
s=0;
for(int i=0;i<n;i++){
cin>>x[i]>>y[i];
}
x[n]=x[0];
y[n]=y[0];
for(int i=0;i<n;i++){
s+=x[i]*y[i+1]-x[i+1]*y[i];
}
//浮点数版本的绝对值
s=fabs(s*0.5);
printf("%.1lf\n",s);
}
return 0;
}
2037
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
struct node{
int s,e;
}T[105];
bool cmp(node a,node b){
return a.e<b.e;
}
int main() {
int n;
while(cin>>n,n){
for(int i=0;i<n;i++){
cin>>T[i].s>>T[i].e;
}
sort(T,T+n,cmp);
//最早结束的节目必须要看
int ans=1;
int m=0;
for(int i=1;i<n;i++){
if(T[i].s>=T[m].e){
ans++;
m=i;
}
}
cout << ans << endl;
}
return 0;
}
2038
没有2038这道题目
2039
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
//得用浮点型
int main() {
int n;
double a,b,c;
cin>>n;
while(n--){
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}
2040
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
bool isAmicablenumbers(int a,int b){
int sum1=0,sum2=0;
for(int i=1;i<a;i++){
if(a%i==0){
sum1+=i;
}
}
for(int i=1;i<b;i++){
if(b%i==0){
sum2+=i;
}
}
if(sum1==b && sum2==a){
return true;
}
else{
return false;
}
}
int main() {
int n;
cin>>n;
int a,b;
while(n--){
cin>>a>>b;
if(isAmicablenumbers(a,b)){
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
}
return 0;
}
原文地址:https://blog.csdn.net/lch_001/article/details/142743943
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!