NOI / 1.1编程基础之输入输出
01:Hello, World!
答:
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"Hello, World!";
return 0;
}
02:输出第二个整数
答:
#include<iostream>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<b;
return 0;
}
03:对齐输出
答:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
// 可以三行合并为一行写完,不过太长了
cout << setw(8) << a << ' ';
cout << setw(8) << b << ' ';
cout << setw(8) << c;
return 0;
}
04:输出保留3位小数的浮点数
答
#include<iostream>
using namespace std;
int main(){
float a;
cin>>a;
printf("%0.3f",a);
return 0;
}
05:输出保留12位小数的浮点数
答:
#include<iostream>
using namespace std;
int main(){
double a;
cin>>a;
printf("%0.12f",a);
return 0;
}
06:空格分隔输出
答
#include<iostream>
using namespace std;
int main()
{
int b;
char c;
float e;
double a;
cin>>c>>b>>e>>a;
cout<<c<<" "<<b<<" ";
printf("%0.6f ",e);
printf("%0.6f ",a);
return 0;
}
07:输出浮点数
答
#include <cstdio>
int main()
{
double f;
scanf("%lf", &f);
printf("%f\n%.5f\n%e\n%g", f, f, f, f);
return 0;
}
08:字符三角形
答
#include<iostream>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<" "<<a<<endl;
cout<<" "<<a<<a<<a<<endl;
cout<<a<<a<<a<<a<<a<<endl;
return 0;
}
09:字符菱形
答
#include<iostream>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<" "<<a<<endl;
cout<<" "<<a<<a<<a<<endl;
cout<<a<<a<<a<<a<<a<<endl;
cout<<" "<<a<<a<<a<<endl;
cout<<" "<<a<<endl;
return 0;
}
10:超级玛丽游戏
答因系统不相同,所以显示不出出来。(亲,请谅解。)看到的不是乱码,可直接复制上去。
#include<iostream>
using namespace std;
int main()
{
cout<<" ********"<<endl;
cout<<" ************"<<endl;
cout<<" ####....#."<<endl;
cout<<" #..###.....##...."<<endl;
cout<<" ###.......###### ### ### ### ###"<<endl;
cout<<" ........... #...# #...# #...# #...#"<<endl;
cout<<" ##*####### #.#.# #.#.# #.#.# #.#.#"<<endl;
cout<<" ####*******###### #.#.# #.#.# #.#.# #.#.#"<<endl;
cout<<" ...#***.****.*###.... #...# #...# #...# #...#"<<endl;
cout<<" ....**********##..... ### ### ### ###"<<endl;
cout<<" ....**** *****...."<<endl;
cout<<" #### ####"<<endl;
cout<<" ###### ######"<<endl;
cout<<"############################################################## ##################################"<<endl;
cout<<"#...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------#"<<endl;
cout<<"###########################################------------------# ###############------------------#"<<endl;
cout<<"#..#....#....##..#....#....##..#....#....##################### #..#....#....#####################"<<endl;
cout<<"########################################## #----------# ############## #----------#"<<endl;
cout<<"#.....#......##.....#......##.....#......# #----------# #.....#......# #----------#"<<endl;
cout<<"########################################## #----------# ############## #----------#"<<endl;
cout<<"#.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------#"<<endl;
cout<<"########################################## ############ ############## ############"<<endl;
return 0;
}
NOI / 1.2编程基础之变量定义、赋值及转换
01
#include <iostream>
using namespace std;
int main()
{
int a;
short b;
cout << sizeof(a) << ' ' << sizeof b;
return 0;
}
2
#include<bits/stdc++.h>
using namespace std;
int main(){
float a=1.0;
double b=2.0;
cout<<sizeof(a)<<' '<<sizeof(b)<<endl;
return 0;
}
3
#include<bits/stdc++.h>
using namespace std;
int main(){
bool a=1;
char b=2;
cout<<sizeof(a)<<' '<<sizeof(b)<<endl;
return 0;
}
4
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"D C"<<endl;
return 0;
}
5
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"F E"<<endl;
return 0;
}
6
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
printf("%.3lf%%",(double)b/a*100);//cout<<fixed<<setprecision(3)<<(double)b/a*100<<'%'<<endl;
return 0;
}
7
#include<bits/stdc++.h>
using namespace std;
int main(){
char a;
scanf("%c",&a);
printf("%d",a);
return 0;
}
8
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
scanf("%d",&a);
printf("%c",a);
return 0;
}
9
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
bool b;
cin>>a;
a=b=a;
cout<<a<<endl;
return 0;
}
10
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[]="Hello, World!";
cout<<sizeof(a)<<endl;
return 0;
NOI / 1.3编程基础之算术表达式与顺序执行
01
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a+b<< endl;
return 0;
}
02
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d",(a+b)*c);
}
03
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d",(a+b)/c);
}
04
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d",&a,&b);
printf("%d %d",a/b,a%b);
}
05
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
double c=((double)a)/((double)b);
printf("%.9f",c);
}
06
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
double c;
c=((double)b)/((double)a)*100;
printf("%.3f%%",c);
}
07
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,d,x;
scanf("%lf %lf %lf %lf %lf",&x,&a,&b,&c,&d);
double result;
result=a*pow(x,3)+b*pow(x,2)+c*x+d;
printf("%.7lf",result);
}
08
#include<stdio.h>
#include<math.h>
int main()
{
double f,c;
scanf("%lf",&f);
c=5*(f-32)/9;
printf("%.5f",c);
}
09
#include<stdio.h>
#include<math.h>
#define pi 3.14159
int main()
{
double r;
scanf("%lf",&r);
printf("%.4f %.4f %.4f",2*r,2*pi*r,pi*r*r);
}
10
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,R;
scanf("%f %f",&a,&b);
R=1/(1/a+1/b);
printf("%.2f",R);
}
11
#include<stdio.h>
#include<math.h>
int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
int k=(int)(a/b);
double r;
r=a-k*b;
printf("%g",r);
}
12
#include<stdio.h>
#include<math.h>
#define pi 3.14
int main()
{
double r;
scanf("%lf",&r);
double s=(4*pi*pow(r,3))/3;
printf("%.2f",s);
}
13
#include<stdio.h>
#include<math.h>
int main()
{
int a;
scanf("%d",&a);
int i,get;
for(i=0;i<3;i++)
{
get=a%10;
a/=10;
printf("%d",get);
}
}
14
#include<stdio.h>
#include<math.h>
#define pi 3.14159
int main()
{
int h,r;
scanf("%d %d",&h,&r);
double exist=(pi*r*r*h)/1000;
int n;
n=(int)20/exist;
n++;
printf("%d",n);
}
15
#include<stdio.h>
#include<math.h>
int main()
{
int n,x,y;
scanf("%d %d %d",&n,&x,&y);
//ceil函数对小数向上取整,需要math.h头文件
int left=n-ceil(y*1.0/x);
printf("%d",left);
}
16
#include<stdio.h>
#include<math.h>
int main()
{
double xa,ya,xb,yb;
scanf("%lf %lf",&xa,&ya);
scanf("%lf %lf",&xb,&yb);
double answer;
answer=sqrt(pow((xa-xb),2)+pow((ya-yb),2));
printf("%.3lf",answer);
}
17
#include<stdio.h>
#include<math.h>
#define pi 3.14159
int main()
{
float x1,x2,x3,y1,y2,y3;
scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
double a,b,c;
a=sqrt((pow(x1-x2,2))+(pow(y1-y2,2)));
b=sqrt((pow(x1-x3,2))+(pow(y1-y3,2)));
c=sqrt((pow(x3-x2,2))+(pow(y3-y2,2)));
double p=(a+b+c)/2;
double s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2f",s);
}
18
#include<stdio.h>
int main()
{
int a[1024];
int d,i,n;
scanf("%d %d %d",&a[0],&a[1],&n);
if(a[0]<-100)
{
printf("输入有误");
return;
}
if(a[1]>100)
{
printf("输入有误");
return;
}
if((n>1000)&&(n<=0))
{
printf("输入有误");
return;
}
d=a[1]-a[0];
for(i=2;i<=n-1;i++)
{
a[i]=a[i-1]+d;
}
printf("%d",a[n-1]);
}
19
#include<stdio.h>
#include<math.h>
int main()
{
//乘积的范围超过了int,使用长整型
long a,b;
scanf("%ld %ld",&a,&b);
if((a>=1)&&(b<=50000))
{
printf("%ld",a*b);
}
20
#include<stdio.h>
#include<math.h>
int main()
{
int n;
scanf("%d",&n);
long long s;
if(n>=0&&n<31)
{
s=pow(2,n);
printf("%lld",s);
}
}
1.4编程基础之逻辑表达式与条件分支
01
#include <iostream>
using namespace std;
int main()
{
int a;
cin>>a;
if(a>0)
cout<<"positive";
else if(a==0)
cout<<"zero";
else
cout<<"negative";
return 0;
}
02
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
float a;
cin>>a;
if(a<0)
a=-a;
printf("%.2f",a);
return 0;
}
03
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n%2==0)
cout<<"even";
else
cout<<"odd";
return 0;
}
04
#include<stdio.h>
using namespace std;
int main()
{
char n;
scanf("%c",&n);
if(n%2==1)
printf("YES");
else if(n%2==0)
printf("NO");
return 0;
}
05
#include <iostream>
using namespace std;
int main()
{
int x,y;
cin>>x>>y;
if(x>y)
cout<<">";
else if(x<y)
cout<<"<";
else
cout<<"=";
return 0;
}
06
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if((n/10)>0&&(n/10)<10)
cout<<1;
else
cout<<0;
return 0;
}
07
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
if(a>=10||b>=20)
cout<<1;
else
cout<<0;
return 0;
}
08
#include <iostream>
using namespace std;
int main()
{
int a;
cin>>a;
if(a%3==0&&a%5==0) //判断能否同时被3和5整除
cout<<"YES";
else
cout<<"NO";
return 0;
}
09
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n%3==0)
cout<<"3 ";
if(n%5==0)
cout<<"5 ";
if(n%7==0)
cout<<"7";
if(n%3!=0&&n%5!=0&&n%7!=0)
cout<<"n";
return 0;
}
10
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
if((a>=60&&b>=60)||(a<60&&b<60))
cout<<0;
else
cout<<1;
return 0;
}
11
#include <iostream>
using namespace std;
int main()
{
int a;
cin>>a;
if(a==1||a==3||a==5)
cout<<"NO";
else
cout<<"YES";
return 0;
}
12
#include <iostream>
using namespace std;
int main()
{
double a,t1,t2;
cin>>a;
t1=a/1.2;
t2=a/3.0+27+23;
if(t1>t2)
cout<<"Bike";
else if(t1<t2)
cout<<"Walk";
else
cout<<"All";
return 0;
}
13
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
double x,y;
cin>>x;
if(x>=0&&x<5)
y=-x+2.5;
else if(x>=5&&x<10)
y=2-1.5*(x-3)*(x-3);
else if(x>=10&&x<20)
y=x/2-1.5;
printf("%.3lf",y);
return 0;
}
14
#include <stdio.h>
using namespace std;
int main ()
{
char c;
int m,s=0;
scanf("%d",&m);
c=getchar();
c=getchar();
if(m<=1000)
s=0;
else
{
s=(m-1000)/500;
if(s*500!=m-1000)
s++; //不足500的运费+1
s*=4;
}
if(c=='y')
s+=5;
printf("%d",s+8);
return 0;
}
15
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
int t,n;
if(a>=b)
{
t=b;
b=a;
a=t;
}
if(c>=b)
cout<<c;
else
cout<<b;
return 0;
}
16
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
int i,j;
cin>>a>>b>>c;
if(a>b)
{
i=a;
a=b;
b=i;
}
if((b>=c&&c>=a)||(b>=c&&a>=c))
if((a+c)>b)
cout<<"yes";
else
cout<<"no";
else if(c>=b&&b>=a)
if((a+b)>c)
cout<<"yes";
else
cout<<"no";
return 0;
}
17
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if((n%4==0&&n%100!=0)||n%400==0)
cout<<"Y";
else
cout<<"N";
return 0;
}
18
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
if((a>=-1&&a<=1)&&(b>=-1&&b<=1))
cout<<"yes";
else
cout<<"no";
return 0;
}
19
#include <iostream>
using namespace std;
int main()
{
int a,b;
char c;
cin>>a>>b>>c;
if(c=='+')
cout<<a+b;
else if(c=='-')
cout<<a-b;
else if(c=='*')
cout<<a*b;
else if(c=='/')
{
if(b!=0)
cout<<a/b;
else
cout<<"Divided by zero!";
}
else
cout<<"Invalid operator!";
return 0;
}
20
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
double a,b,c,x;
cin>>a>>b>>c;
if(b*b==4*a*c)
printf("x1=x2=%.5f",(-b+sqrt(b*b-4*a*c))/(2*a));
else
{
if(b*b>4*a*c)
printf("x1=%.5f;x2=%.5f",(-b+sqrt(b*b-4*a*c))/(2*a), (-b-sqrt(b*b-4*a*c))/(2*a));
else
{
x=(-b/(2*a));
if(x==-0.00000)
x=0;
printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi",x,(sqrt(4*a*c-b*b)/(2*a)),x,(sqrt(4*a*c-b*b)/(2*a)));
}
}
return 0;
}
21
#include <iostream>
using namespace std;
int main()
{
int n=0,x=0,y=0;
int eat=0,rest=0; //定义吃掉的个数和剩余个数
cin>>n>>x>>y;
if(y%x==0)
eat=y/x; //求吃掉的个数
else
eat=y/x+1;
if(n>eat)
rest=n-eat; //求剩余个数并输出
else
rest=0;
cout<<rest<<endl;
return 0;
}
NOI / 1.5编程基础之循环控制
01
#include <stdio.h>
using namespace std;
int main ()
{
int n,a,i;
float sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
sum+=a;
}
printf("%.2f",sum/n);
return 0;
}
02
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
float a[12],sum=0;
int i;
for(i=0;i<12;i++)
cin>>a[i];
for(i=0;i<12;i++)
{
sum+=a[i];
}
printf("$%.2lf",sum/12);
return 0;
}
03
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n,i;
double a[100],j=0;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
j+=a[i];
}
printf("%.4lf",j/n);
return 0;
}
04
#include <stdio.h>
using namespace std;
int main()
{
int n,i,s[10000];
long sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
sum+=s[i];
}
printf("%d %.5lf",sum,(double)sum/n);
return 0;
}
05
#include <stdio.h>
using namespace std;
int main()
{
int n,i,s[10000];
long sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
sum+=s[i];
}
printf("%d %.5lf",sum,(double)sum/n);
return 0;
}
06
#include <iostream>
using namespace std;
int main()
{
int n,i,j,t;
int a[1005];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(j=0;j<n-1;j++)
{
for(i=0;i<n-j-1;i++)
{
if(a[i+1]<a[i])
{
t=a[i+1];
a[i+1]=a[i];
a[i]=t; //交换次序
}
}
}
cout<<a[n-1]-a[0];
return 0;
}
07
#include <iostream>
using namespace std;
int main()
{
int n,i,x=0,y=0,z=0;
int a[20],b[20],c[20];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i]>>b[i]>>c[i];
for(i=0;i<n;i++)
{
x+=a[i];
y+=b[i];
z+=c[i]; //对应相加即可
}
cout<<x<<" "<<y<<" "<<z<<" "<<x+y+z;
return 0;
}
08
#include <iostream>
using namespace std;
int main()
{
int n,a,i,s=0;
cin>>n;
for(i=1;i<n;i++)
{
cin>>a;
s+=a;
}
cout<<(n-2)*180-s;
return 0;
}
09
#include <iostream>
using namespace std;
int main()
{
int m,n,i,sum=0;
cin>>m>>n;
for(i=m;i<=n;i++)
{
if(i%2==1)
{
sum+=i; //如果为奇数,则相加
}
}
cout<<sum;
return 0;
}
10
#include <iostream>
using namespace std;
int main()
{
int m,n,i,sum=0;
cin>>m>>n;
for(i=m;i<=n;i++)
{
if(i%17==0) //找到能被17整除的数
{
sum+=i; //相加
}
}
cout<<sum;
return 0;
}
11
#include <iostream>
using namespace std;
int main()
{
int k,i,j,x=0,y=0,z=0;
int a[105];
cin>>k;
for(i=0;i<k;i++)
cin>>a[i];
for(i=0;i<k;i++)
{
if(a[i]==1)
x++;
if(a[i]==5)
y++;
if(a[i]==10)
z++;
}
cout<<x<<endl;
cout<<y<<endl;
cout<<z<<endl;
return 0;
}
12
#include <iostream>
using namespace std;
int main()
{
int n,m,i,sum=0;
int a[105];
cin>>n>>m;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
if(a[i]==m)
sum++;
cout<<sum;
return 0;
}
13
#include <iostream>
using namespace std;
int main ()
{
int a,i,n,s=1;
cin>>a>>n;
for(i=1;i<=n;i++)
s=s*a;
cout<<s;
return 0;
}
14
#include <iostream>
using namespace std;
int main()
{
int n,i;
double x;
int a[105];
cin>>x>>n;
for(i=0;i<n;i++)
x*=(1+0.001);
printf("%.4lf",x);
return 0;
}
15
#include <iostream>
using namespace std;
int main()
{
int r,y,i;
double s,m;
cin>>r>>m>>y;
for(i=0;i<y;i++)
m*=(1+0.01*r);
cout<<(int)m; //把m强制转换成int类型
return 0;
}
16
#include <stdio.h>
using namespace std;
int main()
{
double n,k,m,s=200,a=0; //n为年薪,k为增长率,m为买下房子的时间,a为第几年后的年薪和
scanf("%lf %lf",&n,&k);
for(m=1;m<=20;m++)
{
a=a+n; //年薪相加
if(a>=s) //年薪和大于房价
{
printf("%g",m);
return 0;
}
s=s*(k/100+1); //增长后的房价
}
printf("Impossible");
return 0;
}
17
#include <iostream>
using namespace std;
int main()
{
int k,i,sum=0;
int a[50];
cin>>k;
a[0]=1;
a[1]=1;
for(i=2;i<=k;i++) //起始时i=2而不是i=0,因为当i=0时,a[i-2]不成立
a[i]=a[i-1]+a[i-2];
cout<<a[k-1];
return 0;
}
18
#include <iostream>
using namespace std;
int main()
{
int n,i;
double x,y;
double a[25],b[25];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i]>>b[i];
x=b[0]/a[0];
for(i=1;i<n;i++)
{
y=b[i]/a[i];
if((y-x)>0.05)
cout<<"better"<<endl;
else if((x-y)>0.05)
cout<<"worse"<<endl;
else
cout<<"same"<<endl;
}
return 0;
}
19
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,people;
double x,y,d,time=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x>>y>>people;
d=sqrt(x*x+y*y)*2;
time+=1.5*people+d/50;
}
cout<<ceil(time)<<endl; //ceil向上取整,取大于或等于它本身的整数,需包含<cmath>
return 0;
}
20
#include <iostream>
using namespace std;
int main()
{
double h,s=0;
cin>>h;
for(int i=0;i<10;i++)
{
s+=1.5*h;
h/=2;
}
s-=h;
cout<<s<<endl;
cout<<h<<endl;
return 0;
}
21
#include <iostream>
using namespace std;
int main()
{
long long n;
cin>>n;
if(n==1)
cout<<"End";
else
{
while(n!=1)
{
if(n%2==1)
{
cout<<n<<"*3+1="<<3*n+1<<endl;
n=3*n+1;
}
else
{
cout<<n<<"/2="<<n/2<<endl;
n/=2;
}
}
cout<<"End";
}
return 0;
}
22
#include <iostream>
using namespace std;
int main()
{
int i,sum1=0;
int a[15];
double sum2=0;
for(i=1;i<=12;i++)
cin>>a[i];
for(i=1;i<=12;i++)
{
sum1+=300;
if(sum1<a[i])
{
cout<<-i;
break;
}
sum1-=a[i];
if(sum1>100)
{
sum2+=sum1/100*100;
sum1=sum1%100;
}
}
if(i==13)
cout<<sum2*1.2+sum1;
return 0;
}
23
#include <iostream>
using namespace std;
int main()
{
int m,n,i,sum=0;
int a[105];
cin>>m>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=n;i++)
{
if(m>=a[i])
m-=a[i];
else
{
sum++;
continue;
}
}
cout<<sum;
return 0;
}
24
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
bool isNormal(int high, int low)
{
if (high>=90&&high<=140&&low>=60&&low<=90)
return true;
return false;
}
int main()
{
int n, high, low, temp=0, x=0;
bool last=false; // 记录上一个小时是否正常
cin >> n;
for (int i=0; i<n; i++){
if (!last) temp = 0;
cin >> high >> low;
last = isNormal(high, low);
if (last){
temp++;
if (temp > x) x = temp;
}
}
cout << x << endl;
return 0;
}
25
#include <iostream>
using namespace std;
int main()
{
int i;
for (i = 65; i <= 342; i++) {
if ((i % 9 == i / 49) &&
(i / 9 % 9 == i / 7 % 7) &&
(i / 81 == i % 7)) {
cout << i << endl;
cout << i / 49 << i / 7 % 7 << i % 7 << endl;
cout << i / 81 << i / 9 % 9 << i % 9 << endl;
break;
}
}
return 0;
}
26
#include <iostream>
using namespace std;
int main()
{
int n,i,sum=0;
int b,c,d,e;
int a[105];
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
{
e=a[i]%10;
a[i]=a[i]/10;
d=a[i]%10;
a[i]=a[i]/10;
c=a[i]%10;
a[i]=a[i]/10;
b=a[i]%10;
if((e-b-c-d)>0)
sum++;
}
cout<<sum;
return 0;
}
27
#include <iostream>
using namespace std;
int main()
{
int k,i=1;
double s,sum=0;
cin>>k;
while(sum<=k)
{
s=1.0/i;
sum+=s;
i++;
}
cout<<i-1;
return 0;
}
28
#include <iostream>
using namespace std;
int main()
{
long n;
int i,a;
cin>>n;
while(n!=0)
{
a=n%10;
n/=10;
cout<<a<<" ";
}
return 0;
}
29
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
int s=0;
cin>>n;
if(n<0)
cout<<"-";
n=abs(n);
do
{
s=s*10+n%10;
n/=10;
}while(n>0);
cout<<s;
return 0;
}
30
#include<iostream>
using namespace std;
int main()
{
int m,k,a,sum=0;
cin>>m>>k;
int p=m;
for(;m>0;m/=10)
{
a=m%10;
if(a==3)
sum++;
}
if((sum==k)&&(p%19==0))
cout<<"YES";
else
cout<<"NO";
return 0;
}
31
#include <iostream>
using namespace std;
int main()
{
int n,m,i,j,flag;
cin>>n>>m;
cout<<1;
for(i=2;i<=n;i++)
{
flag=1;
for(j=1;j<=m;j++)
{
if(i%j==0)
{
if(flag==0)
flag=1;
else
flag=0;
}
else
continue;
}
if(flag==0)
cout<<","<<i;
}
return 0;
}
32
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n,i;
double sum=0;
double a[35],b[35],c[35];
cin>>n;
a[0]=2;
b[0]=1;
for(i=1;i<n;i++)
{
a[i]=a[i-1]+b[i-1];
b[i]=a[i-1];
c[i]=a[i]/b[i];
sum+=c[i];
}
sum=sum+2.0;
printf("%.4lf",sum);
return 0;
}
33
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n,i;
double s=0;
cin>>n;
for(i=1;i<=n;i++)
{
if(i%2==0)
s=s-1/double(i);
else
s=s+1/double(i);
}
printf("%.4lf",s);
return 0;
}
34
#include<iostream>
#include<stdio.h>
using namespace std;
int main ()
{
int n,j,s=1,sum=0;
cin>>n;
for(j=1;j<=n;j++){
s=s*j;
sum+=s;
}
cout<<sum;
return 0;
}
35
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n;
double i,j=1,s=0,e=0;
cin>>n;
for(i=1;i<=n;i++)
{
j*=1/i;
s+=j;
}
e=s+1;
printf("%.10lf",e);
return 0;
}
36
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n,i;
double x,y=0;
cin>>x>>n;
double s=x;
for(i=1;i<=n;i++)
{
y=y+s;
s=s*x;
}
y=y+1;
printf("%.2lf",y);
return 0;
}
37
#include <iostream>
using namespace std;
int main()
{
int m,n,x,t;
cin>>m>>n>>x;
while(x>0)
{
t=m/n;
if(m%n!=0)
t++; //这个t不是上升过后的点数
if(x<t)
break; //当x<t,即x-t<0,能量元素小于零,跳出循环
x-=t; //减过后的能量元素
t=m/n;
n+=t; //战斗力上升过后的点数
}
cout<<n;
return 0;
}
38
#include<cstdio>
int main()
{
int n,c;
scanf("%d",&n);
if(!n)
{
printf("0");
return 0;
}
for(int i=n;i>0;i--)
{
scanf("%d",&c);
printf("%d ",c*i);
}
return 0;
}
39
#include <iostream>
using namespace std;
int main()
{
int n,i,j,sum=0;
cin>>n;
for(i=1;i<=n;i++)
{
if((i%7)!=0&&(i%10)!=7&&(i/10)!=7)
{
j=i*i;
sum+=j;
}
}
cout<<sum;
return 0;
}
40
#include <iostream>
using namespace std;
int main()
{
int n,i,temp,sum=0;
cin>>n;
for(i=1;i<=n;i++)
{
temp=i;
while(temp!=0)
{
if(temp%10==1)
sum++;
temp/=10;
}
}
cout<<sum;
return 0;
}
41
#include <iostream>
using namespace std;
int main()
{
int L,R;
int i,n,sum=0;
cin>>L>>R;
for(i=L;i<=R;i++)
{
n=i;
while(n!=0)
{
if(n%10==2)
sum++;
n/=10;
}
}
cout<<sum;
return 0;
}
42
#include <iostream>
using namespace std;
int main()
{
int h,w,i,j;
char n;
bool x;
cin>>h>>w>>n>>x;
for(i=1;i<=h;i++)
{
if(x==1)
for(j=1;j<=w;j++)
cout<<n;
if(x==0)
for(j=1;j<=w;j++)
if(i!=1&&i!=h&&j!=1&&j!=w)
cout<<" ";
else
cout<<n;
cout<<endl;
}
return 0;
}
43
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=2;i<sqrt(n);i++)
if(n%i==0)
{
cout<<n/i;
break;
}
return 0;
}
44
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
long n,i=2,count=0;
long j,flag,t;
cin>>n;
while(count<n)
{
j=2;
flag=0;
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(flag==0)
count++;
i++;
}
cout<<i-1;
return 0;
}
45
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int t=0,s=0,z=0;//t表示当前每天可以得到几枚金币,s表示当前金币总数,z表示当前总天数
while(1)
{
t++;
if(t+z>n)
break;
s+=t*t;
z+=t;
}
for(int i=z+1;i<=n;i++)
s+=t;
cout<<s;
return 0;
}
1.6编程基础之一维数组
01
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int num[102]={};
for(int i=0;i<n;++i)cin>>num[i];
int m,count=0;cin>>m;
for(int i=0;i<n;++i)
{
if(num[i]==m)++count;
}
cout<<count;
return 0;
}
02
#include<iostream>
using namespace std;
int main()
{
int num[102]={};
for(int i=0;i<10;++i)cin>>num[i];
int m,count=0;cin>>m;
for(int i=0;i<10;++i)
{
if(num[i]<=m+30)++count;
}
cout<<count;
return 0;
}
03
#include<iostream>
using namespace std;
int main()
{
double temp,num[10]={28.9,32.7,45.6,78,35,86.2,27.8,43,56,65},sum=0;
for(int i=0;i<10;++i)
{
cin>>temp;
sum+=temp*num[i];
}
printf("%.1f",sum);
return 0;
}
04
#include<iostream>
using namespace std;
int main()
{
int n,num[102]={};
cin>>n;
for(int i=0;i<n;++i)
{
cin>>num[i];
}
cout<<num[n-1];
for(int i=n-2;i>=0;--i)
{
cout<<" "<<num[i];
}
return 0;
}
05
#include<iostream>
using namespace std;
int main()
{
int n,temp;
double num[4]={};
cin>>n;
for(int i=0;i<n;++i)
{
cin>>temp;
if(0<=temp&&temp<=18)
{
num[0]++;
}
else if(temp<=35)
{
num[1]++;
}
else if(temp<=60)
{
num[2]++;
}
else
{
num[3]++;
}
}
for(int i=0;i<4;++i)
{
printf("%.2f%%
",num[i]/n*100.0);
}
return 0;
}
06
#include<iostream>
using namespace std;
int tree[10001];
int main()
{
int L,M;
cin>>L>>M;
int a,b;
for(int i=1;i<=M;++i)
{
cin>>a>>b;
// cout<<a<<","<<b<<endl;
for(int j=a;j<=b;++j)
{
tree[j]=1;
// cout<<j<<endl;
}
}
int count=0;
for(int i=0;i<=L;++i)
{
if(tree[i]==0)
{
++count;
// cout<<i<<endl;
}
}
cout<<count;
return 0;
}
07
#include<iostream>
#include<cmath>
#include <algorithm>
using namespace std;
int tree[10001];
int main()
{
int n;
int num[3001]={},temp[3001];
cin>>n;
cin>>temp[0];
for(int i=1;i<n;++i)
{
cin>>temp[i];
num[i-1]=abs(temp[i]-temp[i-1]);
}
sort(num,num+n);
int flag=1;
for(int i=0;i<n-2;++i)
{
if((num[i+1]-num[i])!=1)
{
flag=0;break;
}
}
if(flag)
{
cout<<"Jolly";
}
else
{
cout<<"Not jolly";
}
return 0;
}
08
#include<iostream>
#include<cmath>
#include <algorithm>
using namespace std;
int tree[10001];
bool Cmp(int a,int b)
{
if(a==0&&b==2)
{
return 1;
}
else if(a==2&&b==5)
{
return 1;
}
else if(a==5&&b==0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n,na,nb;
int ca=0,cb=0;
int A[101]={},B[101]={};
cin>>n>>na>>nb;
for(int i=0;i<na;++i)cin>>A[i];
for(int i=0;i<nb;++i)cin>>B[i];
for(int i=0;i<n;++i)
{
if(Cmp(A[i%na],B[i%nb])) ca++;
if(Cmp(B[i%nb],A[i%na])) cb++;
}
if(ca>cb)
{
cout<<"A";
}
else if(cb>ca)
{
cout<<"B";
}
else
{
cout<<"draw";
}
return 0;
}
09
#include<iostream>
#include<cmath>
#include <algorithm>
using namespace std;
int main()
{
int n,sum=0;
int a[1001]={},b[1001]={};
cin>>n;
for(int i=0;i<n;++i)cin>>a[i];
for(int i=0;i<n;++i)cin>>b[i];
for(int i=0;i<n;++i)
{
sum+=a[i]*b[i];
}
cout<<sum;
return 0;
}
10
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int res[20000];
int ada[20000],adb[20000];
int to_Int(char a)
{
return a-'0';
}
int main()
{
string a,b;
int index=0;
cin>>a>>b;
if(a=="0"&&b=="0")
{
cout<<0;
return 0;
}
int start=max(a.length(),b.length());
for(int i=a.length()-1,j=0;i>=0;--i,++j)ada[j]=to_Int(a[i]);
for(int i=b.length()-1,j=0;i>=0;--i,++j)adb[j]=to_Int(b[i]);
for(int i=0;i<start;++i,++index)
{
res[index]=res[index]+ada[i]+adb[i];
if(res[index]>9)
{
res[index]-=10;
res[index+1]++;
}
}
int i;
for(i=index;res[i]==0;--i);
for(;i>=0;--i)cout<<res[i];
return 0;
}
11
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int res[20000];
int ada[20000],adb[20000];
int to_Int(char a)
{
return a-'0';
}
int main()
{
string a,b;
int index=0;
cin>>a>>b;
int start=max(a.length(),b.length());
for(int i=a.length()-1,j=0;i>=0;--i,++j)ada[j]=to_Int(a[i]);
for(int i=b.length()-1,j=0;i>=0;--i,++j)adb[j]=to_Int(b[i]);
for(int i=0;i<start;++i,++index)
{
res[index]=ada[i]-adb[i];
if(res[index]<0)
{
int indexa=i;
res[index]+=10;indexa++;
ada[indexa]--;
while(ada[indexa]<0)
{
ada[indexa]+=10;
indexa++;
ada[indexa]--;
}
}
// cout<<">>"<<res[index]<<endl;
}
int i,flag=1;
for(i=index;res[i]==0;--i);
for(;i>=0;--i)
{
cout<<res[i];flag=0;
}
if(i<0&&flag)cout<<0;
return 0;
}
12
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;cin>>n;
printf("%.0lf",pow(2,n));
return 0;
}
13
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
string c;
int index=0,flag=0;
cin>>c;
for(int i=2;i<=9;++i)
{
int index=0;
for(int j=0;j<c.length();++j)
{
index=(index*10+c[j]-'0')%i;
}
if(!index)
{
flag=1;cout<<i<<" ";
}
}
if(!flag)
{
cout<<"none";
}
return 0;
}
14
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int ans[100000010];
int main()
{
int n,j,add=0,index=1;
cin>>n;
ans[1]=1;
for(int i=2;i<=n;++i)
{
for(int j=1;j<=index;++j)
{
ans[j]*=i;
}
for(int j=1;j<=index;++j)
{
if(ans[j]>=10)
{
ans[j+1]+=ans[j]/10;
ans[j]%=10;
}
}
while(ans[index+1]>0)
{
index++;
ans[index+1]=ans[index]/10;
ans[index]%=10;
}
}
for(int i=index;i>=1;--i) cout<<ans[i];
return 0;
}
15:
#include<iostream>
using namespace std;
#define N 100000
int a[N],n,tot=1,lena=1,ans[N];
int main()
{
cin>>n;
a[1]=1;ans[1]=1;
for(int i=2;i<=n;i++)
{
for(int j=1;j<=lena;j++)a[j]*=i;
for(int j=1;j<=lena;j++)
{
if(a[j]>9)
{
a[j+1]+=a[j]/10;
a[j]%=10;
if(j==lena)lena++;
}
}
tot=max(lena,tot);
for(int j=1;j<=tot;j++)
ans[j]+=a[j];
for(int j=1;j<=tot;j++)
if(ans[j]>9)
{
ans[j+1]++;
ans[j]-=10;
if(tot==j)tot++;
}
}
for(int i=tot;i>=1;i--)cout<<ans[i];
cout<<endl;
}