AcWing 740. 数组变换
https://www.acwing.com/problem/content/742/
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
int a[100],b[100];
for(int i=0;i<20;i++){
cin>>a[i];
}
for(int i=0,j=19;i<20;i++,j--){
b[j]=a[i];
}
for(int i=0;i<20;i++){
printf("N[%d] = %d\n",i,b[i]);
}
}
741. 斐波那契数列
https://www.acwing.com/problem/content/743/
#include<bits/stdc++.h>
using namespace std;
long long a,b[61],c[61];//在上下都行
int main()
{
cin>>a;//输入多少需要处理的数
for(int i=1; i<=a; i++)
{
cin>>b[i];//输入需要处理的数
}
for(int i=1; i<=a; i++)
{
c[0]=0;
c[1]=1;//前两个数做单独处理
if(b[i]==0)
cout<<"Fib("<<b[i]<<") = "<<0<<endl;
else if(b[i]==1)
cout<<"Fib("<<b[i]<<") = "<<1<<endl;
else
{
for(int j=2; j<=b[i]; j++)
c[j]=c[j-1]+c[j-2];//前两个数相加得出第三个数
cout<<"Fib("<<b[i]<<") = "<<c[b[i]]<<endl;
}
}
return 0;
}
742. 最小数和它的位置
https://www.acwing.com/problem/content/744/
#include<iostream>
using namespace std;
const int N =1010;
int main()
{
int a[N];
int n,x,y;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
x=a[0],y=0;//x为最小值,y为最小值下标
for(int i=1;i<n;i++)//遍历数组
if(a[i]<x){x=a[i],y=i;}//如果a[i]的值小于x,将a[i]的值赋给x,同时记录下标i
cout<<"Minimum value: "<<x<<endl<<"Position: "<<y<<endl;
return 0;
}
744. 数组中的列
https://www.acwing.com/problem/content/746/
#include <bits/stdc++.h>
using namespace std;
int main()
{
int c;
char t;
cin>>c>>t;
double a[12][12];
for(int i=0;i<12;i++)
for(int j=0;j<12;j++)
cin>>a[i][j];
double s=0;
for(int i=0;i<12;i++)
s+=a[i][c];
if(t=='S')printf("%.1lf",s);
else printf("%.1lf",s/12);
return 0;
}
748. 数组的右下半部分
https://www.acwing.com/problem/content/750/
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
char m;
cin>>m;
double a[12][12],num=0;
for(int i=0;i<12;i++)
{
for(int j=0;j<12;j++)
{
cin>>a[i][j];
if(i+j>=12)
num=num+a[i][j];
}
}
if(m=='S') printf("%.1f",num);
else printf("%.1f",num/66.0);
}
AcWing 746. 数组的左下半部分
https://www.acwing.com/problem/content/748/
#include<iostream>
#include<cstring>
using namespace std;
double m[12][12];
int main()
{
char a;
cin>>a;
for(int i=1;i<=12;i++)
for(int j=1;j<=12;j++)
cin>>m[i][j];
double sum=0;
int num=0;
for(int i=1;i<=12;i++)
{
for(int j=i-1;j>=1;j--)
{
sum+=m[i][j];
num++;
}
}
if(a=='S')//S求和,M求平均值。
printf("%.1f\n",sum);//保留一位小数
else
printf("%.1f\n",sum/num);//保留一位小数
return 0;
}
750. 数组的下方区域
https://www.acwing.com/problem/content/752/
#include <iostream>
using namespace std;
int main()
{
char c;
cin>>c;
double a,res=0;
for(int i=0;i<12;i++)
for(int j=0;j<12;j++)
{
cin>>a;
if(i>j&&i+j>11)res+=a;
}
printf("%.1lf",c=='S'?res:res/30);
}