题解仅供参考。
个人博客,欢迎访问~
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;
}
9061

被折叠的 条评论
为什么被折叠?



