题解仅供参考。
https://spikeq.icu/2025/07/19/to-new-student-2/
http://Spike_Q'Blog | 计算机入门指南个人博客,欢迎访问~
1061: 公式求值
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
double sum=1.0,w=1;
for(int i=1;i<=a;i++)
{
w*=i;
sum+=1.0/w;
}
cout<<fixed<<setprecision(10)<<sum;
return 0;
}
1062: 求m+(m+1)+…+n
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
int sum=0;
for(int i=m;i<=n;i++)
sum+=i;
cout<<sum;
return 0;
}
1063: 多用例测试
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b)
cout<<a+b<<endl;
return 0;
}
1064: 求使1+2+…+i>=n成立的最小整数 i
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int sum=0;
for(int i=1;;i++)
{
sum+=i;
if(sum>=n)
{
cout<<i;
return 0;
}
}
return 0;
}
1065: 质数判断
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int res=1;
if(n==1)
res=0;
else if(n==2)
res=1;
else
{
for(int i=2;i*i<=n;i++)//写i*i<=n比i<=sqrt(n)运行更快~
{
if(n%i==0)
{
res=0;
break;
}
}
}
if(res==0)
cout<<"No";
else
cout<<"Yes";
return 0;
}
1066: 求1-2/3+3/5-4/7+5/9-6/11+…的前n项和
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
double sum=0;
int a=1,b=1,f=1;
cin>>n;
for(int i=0;i<n;i++)
{
sum+=f*1.0*a/b;
a+=1;
b+=2;
f=-f;
}
cout<<fixed<<setprecision(3)<<sum<<endl;
return 0;
}
1067: 质数判断(使用break语句)
同1065。
1068:输出a到b之间的不能被3整除的整数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
if(i%3!=0)
cout<<i<<" ";
}
return 0;
}
1069: 百文买百鸡
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,x,y,z;
cin>>m;
for(x=0;x<=m/5;x++){
for(y=0;y<=m/3;y++)
{
z=m-x-y;
if(15*x+9*y+z==3*m)
{
cout<<x<<" "<<y<<" "<<z<<endl;
return 0;
}
}
}
}
1070: 求a到b之间存在多少个素数
#include<bits/stdc++.h>
using namespace std;
int sushu(int a)
{
if(a==1)
return 0;
else if(a==2)
return 1;
else if(a>2)
{
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0)
return 0;
}
return 1;
}
}
int main()
{
int a,b,sum=0;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
if(sushu(i))
sum++;
}
cout<<sum;
return 0;
}
1071: 百文买百鸡(增加无解输出)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m;
cin>>m;
for(int i=0;i<=m/5;i++)
for(int j=0;j<=m/3;j++)
{
int k=m-i-j;
if(i*15+j*9+k==m*3)
{
cout<<i<<" "<<j<<" "<<k;
return 0;
}
}
cout<<"No answer";
return 0;
}
1072: 正整数的位数(while实现)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,s=0;
cin>>n;
while(n>0)
{
n/=10;
s+=1;
}
cout<<s;
return 0;
}
1073: 反转数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
if(n<0)
{
cout<<"-";
n=-n;
}
int o=0;
while(n)
{
if(n%10!=0)
o=1;
if(o==1)
cout<<n%10;
n/=10;
}
return 0;
}
1074: 礼物数目
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,ans=0;
cin>>n;
while(n--)
{
if(n%10==4)continue;
if((n/10)%10==4)continue;
if(n/100==4)continue;
ans++;
}
cout<<ans<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
{
int k=i;
int si=0;
while(k)
{
if(k%10==4)
{
si=1;
break;
}
k/=10;
}
if(!si)
ans++;
}
cout<<ans<<endl;
return 0;
}
1075: 分解质因数
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int i=2,o=0;
while(i<=n){
while(n%i==0){
if(o)
cout<<"*";
cout<<i;
n=n/i;
o=1;
}
i++;
}
return 0;
}
1076: 求a+aa+aaa+…aa…a(n个a)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a;
cin>>n>>a;
int ans=0;
int b=a;
for(int i=0;i<n;i++)
{
ans+=a;
a=b+a*10;
}
cout<<ans;
return 0;
}
1077: 零花钱
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,k;
cin>>m>>k;
int ans=0;
while(m--)
{
ans++;
if(ans%k==0)
m++;
}
cout<<ans;
return 0;
}
1078: n!的最高位
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
double k=1;//保持精度
for(int i=1;i<=n;i++)
{
k*=i;
while(k>=10)
k/=10;
}
cout<<(int)k;
return 0;
}
1079: 小车的位置
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,c;
int x=0,y=0;
int m=0,s=0;
while(cin>>t>>c)
{
if(m==0)
y+=(t-s)*10;
else if(m==1)
x-=(t-s)*10;
else if(m==2)
y-=(t-s)*10;
else if(m==3)
x+=(t-s)*10;
s=t;
if(c==1)
m=(m+1)%4;
else if(c==2)
m=(m+3)%4;
else if(c==3)
break;
}
cout<<x<<" "<<y;
return 0;
}
1080: 乘积计算
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int c=a*b;
string s=to_string(c);
int o=0;
for(int i=s.size()-1;i>=0;i--)
{
if(s[i]!='0')
o=1;
if(o==1)
cout<<s[i];
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int c=a*b;
int ans=0;
while(c>0)
{
ans=ans*10+c%10;
c/=10;
}
cout<<ans;
return 0;
}
1081: 两个数的最大公约数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
while(b)
{
int t=a%b;
a=b;
b=t;
}
cout<<a;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<__gcd(a,b);
return 0;
}
1082: 两个数的最小公倍数
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
while(b!=0)
{
int t=b;
b=a%b;
a=t;
}
return a;
}
int lcm(int a,int b)
{
return a/gcd(a,b)*b;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<lcm(a,b);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a/__gcd(a,b)*b;
return 0;
}
1083: 九九乘法表(一)
#include<bits/stdc++.h>
using namespace std;
int main()
{
for(int i=1;i<=9;i++)
for(int j=1;j<=i;j++)
{
cout<<i<<"*"<<j<<"="<<j*i<<" ";
if(j==i)
cout<<endl;
}
return 0;
}
1084: 九九乘法表(二)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int m;
for(int i=1;i<=n;i++)
{
cin>>m;
for(int i=1;i<=m;i++)
for(int j=i;j<=9;j++)
{
cout<<i<<"*"<<j<<"="<<j*i<<" ";
if(j==9)
cout<<endl;
}
cout<<endl;
}
return 0;
}
1085: 字符统计(一)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int c=0,s=0,n=0,o=0;
string m;
getline(cin,m);
for(int i=0;i<m.size();i++)
{
if(m[i]>='a'&&m[i]<='z'||m[i]>='A'&&m[i]<='Z')
c++;
else if(m[i]==' ')
s++;
else if(m[i]>='0'&&m[i]<='9')
n++;
else
o++;
}
cout<<"characters="<<c<<endl;
cout<<"spaces="<<s<<endl;
cout<<"numbers="<<n<<endl;
cout<<"others="<<o;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int c=0,s=0,n=0,o=0;
string m;
getline(cin,m);
for(int i=0;i<m.size();i++)
{
if(isalpha(m[i]))
c++;
else if(isdigit(m[i]))
n++;
else if(m[i]==' ')
s++;
else
o++;
}
cout<<"characters="<<c<<endl;
cout<<"spaces="<<s<<endl;
cout<<"numbers="<<n<<endl;
cout<<"others="<<o;
return 0;
}
1086: 连续阶乘求和
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
double t=1,ans=0;
for(int i=1;i<=n;i++)
{
t*=i;
ans+=t;
}
cout<<fixed<<setprecision(0)<<ans;
return 0;
}
1087: 求式子的和
#include<bits/stdc++.h>
using namespace std;
int main()
{
double s1,s2,s3;
for(int i=1;i<=100;i++)
s1+=i;
for(int i=1;i<=50;i++)
s2+=i*i;
for(int i=1;i<=10;i++)
s3+=1.0/i;
double ans=s1+s2+s3;
cout<<fixed<<setprecision(6)<<ans;
return 0;
}
1088: 水仙花数
#include<bits/stdc++.h>
using namespace std;
int main()
{
for(int i=100;i<1000;i++)
{
int g=i%10;
int b=i/100;
int s=i/10%10;
if(i==pow(g,3)+pow(b,3)+pow(s,3))
cout<<i<<endl;
}
return 0;
}
1089: 童年生活二三事
#include<bits/stdc++.h>
using namespace std;
int main()
{
int s[50];
s[1]=1,s[2]=2;
for(int i=3;i<=40;i++)
s[i]=s[i-1]+s[i-2];
int n;
while(cin>>n&&n!=0)
cout<<s[n]<<endl;
return 0;
}
1090: 韩信点兵
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
for(int i=10;i<=100;i++)
{
if(i%3==a&&i%5==b&&i%7==c)
{
cout<<i;
return 0;
}
}
cout<<"No answer";
return 0;
}
1091: 小球蹦蹦跳
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
double l=100,h=50;
n--;
while(n--)
{
l+=2.0*h;
h/=2.0;
}
cout<<fixed<<setprecision(4)<<"length="<<l<<endl<<"high="<<h;
return 0;
}
1092: 当月天数(数组实现)
#include<bits/stdc++.h>
using namespace std;
int a[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 y,m;
cin>>y>>m;
int o=0;
if(y%4==0&&y%100!=0||y%400==0)
o=1;
cout<<a[o][m];
return 0;
}
1093: 摘苹果
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[10];
for(int i=0;i<10;i++)
cin>>a[i];
int b;
cin>>b;
b+=30;
int ans=0;
for(int i=0;i<10;i++)
if(a[i]<=b)
ans++;
cout<<ans;
return 0;
}
1094: 校门外的树
#include<bits/stdc++.h>
using namespace std;
int main()
{
int l,m;
cin>>l>>m;
int a[10010]={0};//差分
while(m--)
{
int x,y;
cin>>x>>y;
a[x]++,a[y+1]--;
}
int ans=0;
for(int i=0;i<=l;i++)
{
if(i>0)
a[i]+=a[i-1];
if(a[i]==0)
ans++;
}
cout<<ans;
return 0;
}
1095: 石头剪刀布
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,na,nb;
cin>>n>>na>>nb;
int a[111],b[111];
for(int i=0;i<na;i++)
cin>>a[i];
for(int i=0;i<nb;i++)
cin>>b[i];
int wa=0,wb=0;
for(int i=0;i<n;i++)
{
int x=a[i%na];
int y=b[i%nb];
if(x==y)
continue;
else if(x==0&&y==2||x==2&&y==5||x==5&&y==0)
wa++;
else
wb++;
}
if(wa>wb)
cout<<'A'<<endl;
else if(wa<wb)
cout<<'B'<<endl;
else
cout<<"draw"<<endl;
return 0;
}
1096: 相同数个数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
map<int,int> h;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
h[x]++;
}
int m;
cin>>m;
cout<<h[m];
return 0;
}
1097: 冰雹猜想
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
stack<int> h;
h.push(n);
while(n!=1)
{
if(n&1)
{
n=n*3+1;
h.push(n);
}
else
{
n/=2;
h.push(n);
}
}
while(!h.empty())
{
cout<<h.top()<<" ";
h.pop();
}
return 0;
}
1098: 卡片游戏
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int ans=1,o=1;
int a[10]={0};
while(o)
{
int t=ans;
while(t)
{
int y=t%10;
a[y]++;
t/=10;
}
for(int i=0;i<=9;i++)
{
if(a[i]>n)
{
o=0;
break;
}
}
ans++;
}
cout<<ans-2;
return 0;
}
1099: 整数位序
#include<bits/stdc++.h>
using namespace std;
int a[5555][5555];
int main()
{
int n;
cin>>n;
int k=1;
a[1][1]=1;
for(int i=2;i<=5555;i++)
{
for(int j=1;j<=i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
k++;
if(a[i][j]==n)
{
cout<<k;
return 0;
}
}
}
return 0;
}
1100: 彩票兑奖
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[8];
for(int i=0;i<7;i++)
cin>>a[i];
int ans[8]={0};
while(n--)
{
int b[8];
for(int i=0;i<7;i++)
cin>>b[i];
int cnt=0;
for(int i=0;i<7;i++)
for(int j=0;j<7;j++)
{
if(a[j]==b[i])
{
cnt++;
break;
}
}
ans[cnt]++;
}
for(int i=7;i>=1;i--)
cout<<ans[i]<<" ";
return 0;
}
1101: 最多质数
#include<bits/stdc++.h>
using namespace std;
#define int long long
bool sushu(int x)
{
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
return 0;
}
return 1;
}
signed main()
{
int n;
cin>>n;
int t=n;
int sum=0;
for(int i=2;i<=n;i++)
{
if(sushu(i))
{
if(t>=i)
{
t-=i;
sum++;
}
else
break;
cout<<i<<' ';
}
}
cout<<endl<<sum;
return 0;
}
1102: 开关灯
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n,m;
cin>>n>>m;
int a[n+1]={0};
for(int i=2;i<=m;i++)
{
for(int j=1;j*i<=n;j++)
a[j*i]^=1;
}
for(int i=1;i<=n;i++)
{
if(a[i]==0)
cout<<i<<" ";
}
return 0;
}
1103: 十进制转二进制
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n;
cin>>n;
int sum=0;
int x=1;
while(n!=0)
{
int m=n%2;
sum+=x*m;
x*=10;
n/=2;
}
cout<<sum;
return 0;
}
1104: 数列有序
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n;
cin>>n;
vector<int> a;
for(int i=1;i<=n+1;i++)
{
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
for(int i=0;i<a.size();i++)
cout<<a[i]<<" ";
return 0;
}
1105: 数组排序
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[111];
signed main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
}
1106: 有序数组合并
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
vector<int> a;
int m;
cin>>m;
for(int i=0;i<m;i++)
{
int x;
cin>>x;
a.push_back(x);
}
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end(),greater<int>());
for(int i=0;i<a.size();i++)
cout<<a[i]<<" ";
return 0;
}
1107: 数组最小值
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n;
cin>>n;
int mmin=1e10,mini=0;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(x<mmin)
{
mmin=x;
mini=i;
}
}
cout<<mmin<<" "<<mini;
return 0;
}
1108: 最受欢迎歌手
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int x;
map<int,int> h;
while(cin>>x&&x!=-1)
h[x]++;
int mmax=0;
for(auto p:h)
{
if(p.second>mmax)
mmax=p.second;
}
for(auto p:h)
{
if(p.second==mmax)
cout<<p.first<<" ";
}
return 0;
}
1109: 查找元素位置
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000100];
signed main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
int x;
cin>>x;
for(int i=1;i<=n;i++)
{
if(a[i]==x)
{
cout<<i;
return 0;
}
}
cout<<-1;
return 0;
}
1110: 数字字符加倍
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
string s;
cin>>s;
int ans=0;
for(int i=0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')
ans=ans*10+s[i]-'0';
}
ans*=2;
cout<<ans;
return 0;
}
1111: 报数字说英文
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int x;
cin>>x;
if(x==1)
cout<<"Mon";
else if(x==2)
cout<<"Tue";
else if(x==3)
cout<<"Wed";
else if(x==4)
cout<<"Thur";
else if(x==5)
cout<<"Fri";
else if(x==6)
cout<<"Sat";
else
cout<<"Sun";
return 0;
}
1112: 二进制转十六进制
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
string s;
cin>>s;
int t=1,ans=0;
for(int i=s.size()-1;i>=0;i--)
{
ans+=(s[i]-'0')*t;
t*=2;
}
printf("%X",ans);
return 0;
}
1113: 单词统计
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
string s;
getline(cin,s);
int ans=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
ans++;
}
cout<<ans+1;
return 0;
}
1114: 最大字符串
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
string s[3];
cin>>s[0]>>s[1]>>s[2];
sort(s,s+3);
cout<<s[2];
return 0;
}
1115: 上三角矩阵
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[11][11];
signed main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
int o=1;
for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
{
if(a[i][j]!=0)
{
o=0;
break;
}
}
if(o==1)
cout<<"YES";
else
cout<<"NO";
return 0;
}
1116: 矩阵乘积
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[11][11],b[11][11],c[11][11];
signed main()
{
int m,p,n;
cin>>m>>p>>n;
for(int i=0;i<m;i++)
for(int j=0;j<p;j++)
cin>>a[i][j];
for(int i=0;i<p;i++)
for(int j=0;j<n;j++)
cin>>b[i][j];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
for(int k=0;k<p;k++)
c[i][j]+=a[i][k]*b[k][j];
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;
}
1117: 最多字母
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
string s;
getline(cin,s);
map<char,int> h;
for(int i=0;i<s.size();i++)
{
if(isupper(s[i]))
h[s[i]+32]++;
else if(islower(s[i]))
h[s[i]]++;
}
int mmax=0;
char maxc;
for(auto x:h)
{
if(x.second>mmax)
{
mmax=x.second;
maxc=x.first;
}
}
cout<<maxc;
return 0;
}
1118: 所在年第几天
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[3][13]={{0,31,28,31,30,31,30,31,31,30,31,30},{0,31,29,31,30,31,30,31,31,30,31,30}};
signed main()
{
int n,y,r;
cin>>n>>y>>r;
int x=0;
if(n%4==0&&n%100!=0||n%400==0)
x=1;
int sum=0;
for(int i=0;i<y;i++)
sum+=a[x][i];
sum+=r;
cout<<sum;
return 0;
}
1119: 选美大赛
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100010];
signed main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int l,r;
cin>>l>>r;
a[l]++;
a[r+1]--;
}
int mmax=0;
for(int i=1;i<=n;i++)
{
a[i]+=a[i-1];
if(a[i]>mmax)
mmax=a[i];
}
for(int i=1;i<=n;i++)
{
if(a[i]==mmax)
cout<<i<<" ";
}
return 0;
}
1120: 杨辉三角
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[11][11];
signed main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<i+1;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
cout<<left<<setw(8)<<a[i][j];
if(i==j)
cout<<endl;
}
return 0;
}
3万+

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



