河南工程学院软件学院ojC++题解(1000~1060)

该文章已生成可运行项目,

题解仅供参考。


个人博客,欢迎访问~

Spike_Q'Blog | 计算机入门指南https://spikeq.icu/2025/07/19/to-new-student-2/


1000: Hello World

#include<iostream>
using namespace std;
int main()
{
    cout<<"Hello World!";
    return 0;
}

1001: 乘法公式

#include<iostream>
using namespace std;
int main()
{
   	int a,b;
   	cin>>a>>b;
   	cout<<a<<'*'<<b<<'='<<a*b;
    return 0;
}

1002: 立方数

#include<iostream>
using namespace std;
int main()
{
    int x;
    cin>>x;
    cout<<x*x*x;
    return 0;
}

1003: 圆柱体表面积

#include<iostream>
#include<iomanip>
using namespace std;
#define PI 3.14159
int main()
{
    double r,h;
    cin>>r>>h;
    double x=PI*r*r*2+2*PI*r*h;
    cout<<fixed<<setprecision(2)<<x<<endl;//控制浮点数输出精度
    return 0;
}

1004: 两整数之和

#include<iostream>
using namespace std;
int main()
{
    int x,y;
    cin>>x>>y;
    cout<<x+y;
    return 0;
}

1005: 分铅笔

#include<iostream>
using namespace std;
int main()
{
   	int m,n;
   	cin>>m>>n;
   	cout<<m/n<<','<<m%n;
    return 0;
}

1006: 圆面积

#include<iostream>
#include<iomanip>
using namespace std;
#define PI 3.14
int main()
{
   	double x;
   	cin>>x;
   	double s=PI*x*x;
   	cout<<fixed<<setprecision(4)<<s;
    return 0;
}

1007: 整数位数

#include<iostream>
using namespace std;
int main()
{
   	int x;
   	cin>>x;
   	int ans=0;
   	while(x)//与while(x!=0)等效
   	{
   		ans++;
   		x/=10;
	}
	cout<<ans;
    return 0;
}
#include<iostream>
using namespace std;
int main()
{
   	string s;
   	cin>>s;
   	cout<<s.size();//string-size函数返回字符串的大小
    return 0;
}

1008: 字母位序

#include<iostream>
using namespace std;
int main()
{
   	char s;
   	cin>>s;
   	cout<<s-'a'+1;
   	return 0;
}

1009: 四则运算

#include<iostream>
using namespace std;
int main()
{
   	int a,b;
    cin>>a>>b;
    cout<<a+b<<' '<<a-b<<' '<<a*b<<' '<<a/b<<' '<<a%b;
   	return 0;
}

1010: 数位分离

#include<iostream>
using namespace std;
int main()
{
   	int x;
   	cin>>x;
   	while(x)
   	{
   	 cout<<x%10<<' ';
   	 x/=10;
	}
   	return 0;
}
#include<iostream>
using namespace std;
int main()
{
   	string s;
   	cin>>s;
   	for(int i=s.size()-1;i>=0;i--)//下标从0开始
   	cout<<s[i]<<' ';
   	return 0;
}

1011: 压岁钱存款

#include<iostream>
#include<cmath> 
using namespace std;
int main()
{
   	int a,n;
   	cin>>a>>n;
   	int b=pow(2,n);//幂函数
   	cout<<a*b;
   	return 0;
}

1012: 等差数列求和

#include<iostream>
using namespace std;
int main()
{
   	int a,b,d;
   	cin>>a>>b>>d;
	int n=(b-a)/d+1;
	cout<<(a+b)*n/2;
   	return 0;
}

1013: 时间间隔

#include<iostream>
using namespace std;
int main()
{
   	int h1,m1,s1,h2,m2,s2;
   	char op;
   	cin>>h1>>op>>m1>>op>>s1>>h2>>op>>m2>>op>>s2;
   	int t1=h1*3600+m1*60+s1;
   	int t2=h2*3600+m2*60+s2;
   	cout<<t2-t1;
   	return 0;
}

1014: 大象喝水

#include<iostream>
#include<cmath>
using namespace std;
#define PI 3.14159
int main()
{
   	int h,r;
    cin>>h>>r;
    double v=PI*r*r*h;
    cout<<ceil(20000/v);//上取整函数
   	return 0;
}

1015: 小明买笔

#include<iostream>
using namespace std;
int main()
{
   	int a,b;
    cin>>a>>b;
    int c=a*10+b;
    int d=19;
    cout<<c/d;
   	return 0;
}

1016: 并联电阻

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double r1,r2;
	cin>>r1>>r2;
	double r=1/(1/r1+1/r2);
	cout<<fixed<<setprecision(2)<<r;
	return 0;
}

1017: 浮点数取余

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double a,b;
	cin>>a>>b;
	int k=a/b;
	cout<<fixed<<setprecision(4)<<a-k*b;
	return 0;
}

1018: 小数点后第n位

#include<iostream>
using namespace std;
int main()
{
	string x;
	int n;
	cin>>x>>n;
	int t=x.find('.');//string-find函数返回所查找元素的索引
	cout<<x[t+n];
	return 0;
}

1019: ASCII码加倍

#include<iostream>
using namespace std;
int main()
{
	char a;
	cin>>a;
	cout<<(int)a*2;//将char强制转化为int
	return 0;
}

1020: 虫子吃苹果

#include<iostream>
using namespace std;
int main()
{
	int n,x,y;
	cin>>n>>x>>y;
	double a=y*1.0/x;//*1.0将int类型显式转换为浮点型
	int b=y/x;
	if(a>(n-1))
		cout<<0;
	else
	{
		if(a==b)
			cout<<n-b;
		else
			cout<<n-b-1;
	}
	return 0;
}

1021: 三个整数之和

#include<iostream>
using namespace std;
int main()
{
	long long a,b,c;
	cin>>a>>b>>c;
	cout<<a+b+c;
	return 0;
}

1022: 身份证求出生日期

#include<iostream>
using namespace std;
int main()
{
	string s;
	cin>>s;
	for(int i=6;i<=13;i++)
	{
	cout<<s[i];
	if(i==9||i==11)
	cout<<'-';
	}
	return 0;
}

1023: 鸡兔同笼

#include<iostream>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
	int j=m/2-n;
	int t=n-j;
	cout<<t<<' '<<j;
	return 0;
}

1024: 时间计算

#include<iostream>
using namespace std;
int main()
{
	int h1,h2,m1,m2;
	cin>>h1>>m1>>h2>>m2;
	int t=h2*60+m2-h1*60-m1;
	cout<<t/60<<' '<<t%60;
	return 0;
}

1025: 计算国民生产总值增长倍数

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
	double p=pow(1.07,10);
	cout<<fixed<<setprecision(2)<<"p="<<p;
	return 0;
}

1026: 计算贷款还款时间

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
	double m=log(6000/(6000-300000*0.01))/log(1+0.01);//对数函数
	cout<<fixed<<setprecision(1)<<"m="<<m;
	return 0;
}

1027: 交换变量

#include<iostream>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
	swap(n,m);//交换函数
	cout<<n<<" "<<m;
	return 0;
}

1028: 译密码(一)

#include<iostream>
using namespace std;
int main()
{
	string s="China";
	for(int i=0;i<s.size();i++)
		cout<<(char)(s[i]+4);
	return 0;
}

1029: 同时整除

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	if(n%3==0&&n%5==0)//&&逻辑与(并且)
		cout<<"yes";
	else
		cout<<"no";
	return 0;
}

1030: 区域判断

#include<iostream>
using namespace std;
int main()
{
	int x,y;
	cin>>x>>y;
	if(x>=-1&&x<=1&&y>=-1&&y<=1)
		cout<<"yes";
	else
		cout<<"no";
	return 0;
}

1031: 三角形判断

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int a[3];
	cin>>a[0]>>a[1]>>a[2];
	sort(a,a+3);//排序函数
	if(a[0]+a[1]>a[2])
		cout<<"yes";
	else
		cout<<"no";
	return 0;
}

1032: 字符判断

#include<iostream>
using namespace std;
int main()
{
	char s;
	cin>>s;
	if(s>='a'&&s<='z')
		cout<<"lower";
	else if(s>='A'&&s<='Z')
		cout<<"upper";
	else if(s>='0'&&s<='9')
		cout<<"digit";
	else
		cout<<"other";
	return 0;
}

1033: 本月天数

#include<iostream>
using namespace std;
int m[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
//二维数组初始化
int main()
{
	int n,y;
	cin>>n>>y;
	int o=0;
	if(n%4==0&&n%100!=0||n%400==0)//||逻辑或(或者)
	o=1;
	cout<<m[o][y];
	return 0;
}

1034: 从小到大输出三个整数

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int a[3];
	for(int i=0;i<3;i++)cin>>a[i];
	sort(a,a+3);
	for(int i=0;i<3;i++)cout<<a[i]<<' ';
	return 0;
}

1035: positive, negative, or zero

#include<iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	if(a>0)
		cout<<"positive";
	else if(a==0)
		cout<<"zero";
	else if(a<0)
		cout<<"negative";
	return 0; 
}

1036: 龟兔赛跑

#include<iostream>
using namespace std;
int main()
{
	int a,b,s,t;
	cin>>a>>b>>s>>t;
	double m=s*1.0/b;
	double n=s*1.0/a;
	if(m+t>n)
		cout<<"Turtle win";
	else if(m+t<n)
		cout<<"Rabbit win";
	else
		cout<<"Tie";
	return 0; 
}

1037: 一元二次方程求解

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
	double a,b,c;
	cin>>a>>b>>c;
	double d=1.0*b*b-4.0*a*c;
	if(a==0)
		cout<<"This is not a quadratic equation"<<endl;
	else
	{
		if(d>0)
		{
			double x1=((-1.0)*b-sqrt(d))/2/a;//平方根函数
			double x2=((-1.0)*b+sqrt(d))/2/a;
			if(x1<x2)
			swap(x1,x2);
			cout<<fixed<<setprecision(2)<<x1<<' '<<x2;
		}
		else if(d<0)
		{
			d=-d;
			double ami=sqrt(d)/2/a;
			double x1=(-1.0)*b/2/a;
			double x2=(-1.0)*b/2/a;
			cout<<fixed<<setprecision(2)<<x1<<'+'<<ami<<"i "<<x2<<'-'<<ami<<'i';
		}
		else
		{
			double x1=((-1.0)*b-sqrt(d))/2/a;
			cout<<fixed<<setprecision(2)<<x1;
		}
	}
	return 0;
}

1038: 奇偶判断

#include<iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	if(a&1)//&与运算,&1判断是否为奇数,与a%2==1等效
		cout<<"odd";
	else
		cout<<"even";
	return 0;
}

1039: 是否闰年

#include<iostream>
using namespace std;
int main()
{
	int y;
	cin>>y;
	if(y%4==0&&y%100!=0||y%400==0)
		cout<<y<<" is a leap year";
	else
		cout<<y<<" is not a leap year";
	return 0;
}

1040: 两个整数中的较大者

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	cin>>a>>b;
	cout<<max(a,b);//返回两个数中较大值
	return 0;
}

1041: 成绩等级

#include<iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	if(a>=90)
		cout<<"A";
	else if(a>=80)
		cout<<"B";
	else if(a>=70)
		cout<<"C";
	else if(a>=60)
		cout<<"D";
	else
		cout<<"E";
	return 0;
}

1042: 向0舍入

#include<iostream>
using namespace std;
int main()
{
	double a;
	cin>>a;
	cout<<(int)a;
	return 0;
}

1043: 求最大数与最小数

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int a[3];
	for(int i=0;i<3;i++)
	cin>>a[i];
	sort(a,a+3);
	cout<<a[2]<<' '<<a[0];
	return 0;
}

1044: 四则运算

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double a,b;
	char c;
	cin>>a>>b>>c;
	if(c=='+')
		cout<<fixed<<setprecision(2)<<a+b;
	if(c=='-')
		cout<<fixed<<setprecision(2)<<a-b;
	if(c=='*')
		cout<<fixed<<setprecision(2)<<a*b;
	if(c=='/')
		cout<<fixed<<setprecision(2)<<a/b;
	return 0;
}

1045: 国庆促销

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double x,a;
	cin>>a;
	if(a<500)
		x=a;
	else if(a<1000)
		x=0.95*a;
	else if(a<3000)
		x=0.9*a;
	else if(a<5000)
		x=0.85*a;
	else
		x=0.8*a;
	cout<<fixed<<setprecision(2)<<x;
	return 0;
}

1046: 求平方根

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	double a;
	cin>>a;
	if(a>0&&a<1000)
	cout<<(int)sqrt(a);
	else
	cout<<"invalid data!";
	return 0;
}

1047: 分段函数求值

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	double x,y;
	cin>>x;
	if(x<1)
		y=x;
	else if(x<=10)
		y=2*x-1;
	else
		y=3*x-11;
	cout<<"y="<<fixed<<setprecision(2)<<y;
	return 0;
}

1048: 求建筑物高度

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
	double x,y;
	char op;
	cin>>op>>x>>op>>y>>op;
	double a=fabs(x),b=fabs(y);//浮点型绝对值函数
	int h;
	if(sqrt(pow(a-2,2)+pow(b-2,2))<=1)
	h=10;
	else
	h=0;
	cout<<h;
	return 0;
}

1049: 字母排序

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	string s;
	cin>>s;
	sort(s.begin(),s.end());
	cout<<s;
	return 0;
}

1050: 加班费

#include<iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	if(a<=160)
	cout<<10*a;
	if(a>160)
	cout<<1600+30*(a-160);
	return 0;
}

1051: 某年某月的天数

#include<iostream>
using namespace std;
int m[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
	int n,y;
	cin>>n>>y;
	int o=0;
	if(n%4==0&&n%100!=0||n%400==0)
	o=1;
	cout<<m[o][y];
	return 0;
}
​

1052: 蚂蚁的位置

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	double x,y;
	cin>>x>>y;
	double t=sqrt(x*x+y*y);
	if(t==4.5)
		cout<<"on";
	else if(t<4.5)
		cout<<"in";
	else if(t>4.5)
		cout<<"out";
	return 0;
}

1053: 吃水果

#include<iostream>
using namespace std;
int main()
{
	char a;
	cin>>a;
	switch(a)
	{
		case 'A':
		cout<<"Apple";
		break;
		case 'B':
		cout<<"Banana";
		break;
		case 'C':
		cout<<"Cherry";
		break;
		case 'D':
		cout<<"Durian";
		break;
		default:
		cout<<"Mango";
		break;
	}
	return 0;
}

1054: 进制转换

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	string s;
	cin>>s;
	int ans=0;
	int p=0;
	for(int i=s.size()-1;i>=0;i--)
	{
		ans+=(s[i]-'0')*pow(2,p);
		p++;
	}
	cout<<ans;
	return 0;
}
/*
二进制逢二进一,十进制逢十进一。
二进制1101
1 1 0 1
8 4 2 1
转化为十进制1*1+2*0+4*1+8*1=13
*/

1055: 整数对数

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
	double m,n;
	cin>>m>>n;
	for(int i=m;i<=n;i++)
	cout<<setw(4)<<i<<setw(8)<<fixed<<setprecision(4)<<log(i)<<endl;//控制输出字段宽度
	return 0;
}

1056: 整数数字

#include<iostream>
using namespace std;
int main()
{
	string s;
	cin>>s;
	for(int i=0;i<s.size();i++)
		cout<<s[i]<<' ';
	return 0;
}

1057: 优惠支付

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int n,m;
	double x;
	cin>>n>>m>>x;
	double sum=0;
	double d,s;
	while(cin>>d>>s)
	sum+=d*s;
	double sum1=sum;
	double sum2=sum*x;
	int k1=sum1/n,k2=sum2/n;
	sum1-=k1*m;
	sum2-=k2*m;
	cout<<fixed<<setprecision(2)<<max(0.0,min(sum1,sum2));//付钱不能为负值
	return 0;
}

1058: 最不高兴

#include<iostream>
using namespace std;
int main()
{
	int maxx=0,maxi=0;
	for(int i=1;i<=7;i++)
	{
		int a,b;
		cin>>a>>b;
		if(a+b>8&&a+b>maxx)
		{
			maxi=i; 
			maxx=a+b;   
		}
	}
		cout<<maxi;
	return 0;
}

1059: 画矩形

#include<iostream>
using namespace std;
int main()
{
	int n,m;
	char op;
	bool t;
	cin>>n>>m>>op>>t;//scanf函数无法直接输入bool类型,使用int也可。
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(t||i==1||j==1||i==n||j==m)//if(t)与if(t==1)等效
				cout<<op;
			else
				cout<<' ';
		}
		cout<<endl;
	}
	return 0;
}

1060: 角谷猜想

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	while(n!=1)
	{
		if(n&1)
		{
			cout<<n<<"*3+1="<<n*3+1<<endl;
			n=n*3+1;
		}
		else
		{
			cout<<n<<"/2="<<n/2<<endl;
			n=n/2;
		}
	}
	cout<<"End";
	return 0;
}

本文章已经生成可运行项目
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值