C++基础语法(循环)
第一题偶数
题目链接:https://www.acwing.com/problem/content/710/
#include <cstdio>
int main(){
int i;
i=1;
while(i<=100){
if(i%2==0) printf("%d\n",i);
i++;
}
return 0;
}
第二题奇数
题目链接:https://www.acwing.com/problem/content/711/
#include <iostream>
using namespace std;
int main(){
int x;
cin >>x;
for(int i=1;i<=x;i++){
if (i%2)cout<<i<<endl;
}
}
第三题正数
题目链接:https://www.acwing.com/problem/content/714/
#include <iostream>
using namespace std;
int main(){
double x,sum;
for(int i=0;i<6;i++){
cin>>x;
if(x>0) sum++;
}
cout <<sum<<" positive numbers"<<endl;
return 0;
}
第四题连续奇数的和1
题目链接:https://www.acwing.com/problem/content/716/
#include <iostream>
using namespace std;
int main(){
int x,y;
int sum=141;
;
;
;
;
if(x>y)swap(x,y);
for (int i=x+1;i<y;i++){
if(i%2) sum+=i;
}cout <<sum<<endl;
return 0;
}
第五题最大数和它的位置
题目链接:https://www.acwing.com/problem/content/718/
#include <iostream>
using namespace std;
int main(){
int x=0,y,a;
for(int i=1;i<=100;i++){
cin >>a;
if (a>x){
x=a;
y=i;
}
}
cout <<x<<endl<<y<<endl;
return 0;
}
第六题递增序列
题目链接:https://www.acwing.com/problem/content/723/
#include <iostream>
using namespace std;
int main(){
int x;
while(cin>>x){
if(x==0)break;
for(int i=1;i<=x;i++)
cout<<i<<' ';
cout<<endl;
}
return 0;
}
第七题连续整数的和
题目链接:https://www.acwing.com/problem/content/722/
#include <iostream>
using namespace std;
int main(){
int a,n;
cin>>a;
while(cin>>n,n<=0);
cout<<((a+a+n-1)*n)/2<<endl;
return 0;
}
第八题约数
题目链接:https://www.acwing.com/problem/content/726/
#include <iostream>
using namespace std;
int main(){
int a;
cin >>a;
int i=1;
while(i<=a){
if(a%i==0){
cout<<i<<endl;
} i++;
}
return 0;
}
第九题PUM
题目链接:https://www.acwing.com/problem/content/725/
#include <iostream>
using namespace std;
int main(){
int a,b;
cin >>a>>b;
for(int i=0,k=1;i<a;i++){
for(int j=0;j<b-1;j++){
cout<<k<<' ';
k++;
}
cout<<"PUM"<<endl;
k++;
}
return 0;
}
第十题六个奇数
题目链接:https://www.acwing.com/problem/content/712/
#include <iostream>
using namespace std;
int main(){
int x;
cin >>x;
int n=6;
while(n>0){
if(x%2)
{
cout<<x<<endl;
n--;
}
x++;
}
return 0;
}
第十一题余数
题目链接:https://www.acwing.com/problem/content/717/
#include <iostream>
using namespace std;
int main(){
int n;
cin >>n;
for (int i=1;i<10000;i++){
if(i%n==2)
cout<<i<<endl;
}
return 0;
}
第十二题乘法表
题目链接:https://www.acwing.com/problem/content/713/
#include <iostream>
using namespace std;
int main(){
int n;
cin >>n;
for (int i=1;i<=10;i++){
cout <<i<<" x "<<n<<" = "<<i*n<<endl;
}
return 0;
}
这个题目一定要注意空格不然就不能ac会出现Presentation Error
第十三题实验
题目链接:https://www.acwing.com/problem/content/720
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
cin>>n;
int a;
char t;
int tz=0,ls=0,qw=0,sum=0;
while(n--){
cin >>a>>t;
if(t=='C')tz+=a;
else if (t=='R')ls+=a;
else qw+=a;
sum=tz+ls+qw;
}
printf("Total: %d animals\nTotal coneys: %d\n",sum,tz);
printf("Total rats: %d\nTotal frogs: %d\n",ls,qw);
printf("Percentage of coneys: %.2lf %\n",(double)tz/sum*100);
printf("Percentage of rats: %.2lf %\n",(double)ls/sum*100);
printf("Percentage of frogs: %.2lf %\n",(double)qw/sum*100);
return 0;
}
第十四题区间2
题目链接:https://www.acwing.com/problem/content/715/
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
int t=0,y=0;
while(n--){
int x;
cin>>x;
if(x>=10&&x<=20)t++;
else y++;
}
cout <<t<<" in"<<endl;
cout<<y<<" out"<<endl;
return 0;
}
第十五题连续奇数的和2
题目链接:https://www.acwing.com/problem/content/721/
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
int x,y;
while(n--){
int sum=0;
cin>>x>>y;
if(x>y)swap(x,y);
for(int i=x+1;i<y;i++){
if(i%2)sum+=i;
}
cout <<sum<<endl;
}
return 0;
}
第十六题简单的斐波那契
题目链接:https://www.acwing.com/problem/content/719/
这个题就是要用滚动第一次a1=0 b1=1 第二次a=1 b的结果是第一次的b=a1+b1以此类推;
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a=0,b=1,c=0;
while(n--){
cout<<a<<' ';
c=a+b;
a=b;
b=c;
}
return 0;
}
第十七题数字序列和它的和
题目链接:https://www.acwing.com/problem/content/724/
#include <iostream>
using namespace std;
int main(){
int m,n;
while(cin>>m>>n,n>0&&m>0){
int sum=0;
if(m>n) swap(m,n);
for(int i = m;i<=n;i++){
cout<<i<<' ';
sum+=i;
}
cout<<"Sum=" <<sum<<endl;
}
return 0;
}
第十八题完全数
题目链接:https://www.acwing.com/problem/content/727/
这个题目给的X的范围是1≤X≤10^8
然后查了一下在100000000只能内就几个完全数然后就很简单就可以写出这个题。
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
while (n--) {
int x;
cin >> x;
if (x == 6 || x == 28 || x == 496 || x == 8128 || x == 33550336)
cout << x << " is perfect" << endl;
else cout << x << " is not perfect" << endl;
}
return 0;
}
第二十题质数
题目链接:https://www.acwing.com/problem/content/728/
错误代码
这样写就会超时time limit exceeded要优化 一下解法
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
bool i_p=true;
int x;
cin>>x;
if(x==1) cout<<x<<" is not prime"<<endl;
for(int i=2;i<x;i++){
if(x%i==0){
i_p=false;
break;
}
else i_p =true;
}
if(i_p) cout <<x<<" is prime"<<endl;
else cout <<x<<" is not prime"<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
bool i_p=true;
int x;
cin>>x;
if(x==1) cout<<x<<" is not prime"<<endl;
for(int i=2;i*i<=x;i++){
if(x%i==0){
i_p=false;
break;
}
else i_p =true;
}
if(i_p) cout <<x<<" is prime"<<endl;
else cout <<x<<" is not prime"<<endl;
}
return 0;
}
这样子就可以AC了。
第二十一题菱形
题目链接:https://www.acwing.com/problem/content/729/
这个题就要用到曼哈顿距离公式了
#include <iostream>
using namespace std;
int main(){
int n;
cin >>n;
int cx=n/2,cy=n/2 ;//确定中心点坐标
for(int i=0;i<n;i++){
for(int j=0;j<=n;j++){//这个j<=n和j<n都是可以AC的;
if(abs(i-cx)+abs(j-cy)<=n/2) cout <<'*';
else cout<<' ';
}
cout <<endl;
}
return 0;
}
过几天继续数组的练习
评论已关闭