一、
#include<bits/stdc++.h>
using namespace std;
double p[100001];
int main()
{
int n;
double x0;
cin>>n>>x0;
for(int i = n;i>=0;i--)
{
cin>>p[i];
}
double sum = 0;
for(int i = 0;i<=n;i++)
{
sum+=p[i]*pow(x0,i);
}
printf("%.3lf\n",sum);
}
二、
#include<bits/stdc++.h>
using namespace std;
int mod = 1000;
int QuickPower(int a,int b)
{
int res =1;
if(b==0)return 1;
a%=mod;
while(b>0)
{
if(b%2==1)
{
res = res*a%mod;
}
b >>=1;
a = a*a%mod;
}
return res;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<QuickPower(a,b);
}
三、
#include <iostream>
#include <cstdio>
using namespace std;
const int SIZE = 1e8+100;
int prime[SIZE];
bool is_prime[SIZE];
int slove(int n)
{
long long p = 0;
for(int i = 0; i <= n; i++)
is_prime[i] = true;
is_prime[0] = is_prime[1] = false;
for(int i = 2; i <= n; i++)
{
if(is_prime[i])
{
prime[p++] = i;
for(int j = 2 * i; j <= n; j += i)
is_prime[j] = false;
}
}
return p;
}
int main()
{
long long n;
while(cin >> n)
{
int res = slove(n);
cout << res << endl;
}
}
四、
#include<stdio.h>
#include<stdbool.h>
bool check(int x){
int t;
while(x){
t=x%10;
if(t==2||t==0||t==1||t==9){
return true;
}
x/=10;
}
return false;
}
int main(){
int n,sum=0;
scanf("%d",&n);
for(int i=0;i<=n;i++){
sum += i*check(i);
}
printf("%d",sum);
}
五、
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=110;
int a[N],b[N];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++) // 输入原数组
cin>>a[i];
for(int i=0;i<n;i++) // 已经排了一部分的数组
cin>>b[i];
int j,i;
// 判断是不是插入排序
for(i=0;i<n-1&&b[i]<=b[i+1];i++); // 前一部份有序
for(j=i+1;j<n&&b[j]==a[j];j++); // 后一部分和原数组一样
if(j==n)
{
puts("Insertion Sort");
sort(a,a+i+2); // i+2为数组长度 下标从0 开始
}
else
{
puts("Merge Sort");
int flage=1,k=1;
while(flage)
{
flage=0;
// 当a 和 b相等则找到当前的排序 再排一次输出
for(int i=0;i<n;i++) if(a[i]!=b[i]){flage=1;break;}
k=k<<1; // k*=2;
for(int i=0;i<n/k;i++) sort(a+i*k,a+(i+1)*k);
sort(a+(n/k)*k,a+n); // 不是k的倍数剩余的部分
}
}
cout<<a[0];
for(int i=1;i<n;i++)
cout<<' '<<a[i];
}
六、
#include<iostream>
using namespace std;
int a[1000000];
int main()
{
int n,x;
cin>>n>>x;
int flag = 0;
int num = 0;
int t = -1;
int sum = 0;
for(int i = 0; i < n; i ++) {
cin>>a[i];
if(a[i] < x){
num ++;
t = i;
}
if(a[i] == x){
flag = 1;
sum = i;
}
}
if(flag == 1) {
cout<<sum<<" "<<sum<<endl;
}else if(num == n){
cout<<n-1<<" "<<n <<endl;
}else if(num == 0){
cout<<"-1 0"<<endl;
}else {
cout<<t<<" "<<t+1<<endl;
}
}
七、
#include<bits/stdc++.h>
using namespace std;
int n,cou=0;
void hanio(int n,char a,char b,char c) //b为中间
{
cou++;
if(n==1)
{
printf("%c-->%c\n",a,c);
}
else
{
hanio(n-1,a,c,b);
printf("%c-->%c\n",a,c);
hanio(n-1,b,a,c);
}
}
int main()
{
cin>>n;
hanio(n,'A','B','C');
printf("%d\n",cou);
return 0;
}
八、
#include<bits/stdc++.h>
using namespace std;
int cover[100][100];
int title=1;
void board_cover(int tr,int tc,int dr,int dc,int size){
if(size==1){
return ;
}
int num=title++;
size =size/2;
if(dr<tr+size&&dc<tc+size)
board_cover(tr,tc,dr,dc,size);
else{
cover[tr+size-1][tc+size-1]=num;
board_cover(tr,tc,tr+size-1,tc+size-1,size);
}
if(dr<tr+size&&dc>=tc+size)
board_cover(tr,tc+size,dr,dc,size);
else{
cover[tr+size-1][tc+size]=num;
board_cover(tr,tc+size,tr+size-1,tc+size,size);
}
if(dr>=tr+size&&dc>=tc+size)
board_cover(tr+size,tc+size,dr,dc,size);
else{
cover[tr+size][tc+size]=num;
board_cover(tr+size,tc+size,tr+size,tc+size,size);
}
if(dr>=tr+size&&dc<tc+size)
board_cover(tr+size,tc,dr,dc,size);
else{
cover[tr+size][tc+size-1]=num;
board_cover(tr+size,tc,tr+size,tc+size-1,size);
}
}
int main(){
int dr,dc,length;
cin>>dr>>dc>>length;
cover[dr][dc]=0;
board_cover(1,1,dr,dc,length);
for(int i=1;i<=length;i++){
for(int j=1;j<=length;j++){
printf("%4d",cover[i][j]);
}
cout<<endl;
}
}
九、
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n;
cin>>n;
if(n>=0)
printf("%.6lf\n",pow(n,1.0/3));
else{
printf("-%.6lf\n",pow(-n,1.0/3));
}
}
十、
#include<stdio.h>
#define Max 998244353
struct juzhen
{
unsigned long long M[2][2];
};//定义结构体
struct juzhen mul(struct juzhen A, struct juzhen B)//矩阵相乘,返回值为矩阵
{
struct juzhen C;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
C.M[i][j] = 0;//初始化新矩阵
for (int k = 0; k < 2; k++)
{
C.M[i][j] = C.M[i][j] + A.M[i][k] * B.M[k][j];
C.M[i][j] = C.M[i][j] % Max;
}
}
}
return C;//将乘积结果返回
}
struct juzhen qul(unsigned long long t, struct juzhen a)//快速幂算法
{
struct juzhen res;
res.M[0][0] = 1; res.M[0][1] = 0;
res.M[1][0] = 0; res.M[1][1] = 1;//单位矩阵
while (t > 0)
{
if (t % 2)
res = mul(res, a);
a = mul(a, a);
t = t>>1;//用移位操作可以进一步较少程序执行时间
}
return res;
}
int main()
{
unsigned long long N, sum = 0;
scanf("%llu", &N);
struct juzhen A;
struct juzhen D;
A.M[0][0] = 1;
A.M[0][1] = 1;
A.M[1][0] = 1;
A.M[1][1] = 0;//赋初值
if (N == 1 || N == 2) printf("1");
else
{
D = qul(N - 2, A);
sum = (D.M[0][0] + D.M[0][1]) % Max;
printf("%llu", sum);
}
return 0;
}
十一、
#include <bits/stdc++.h>
using namespace std;
const int MAX = 1005;
int p[MAX];
int m[MAX][MAX];
int n;
void matrix()
{
int i,j,r,k;
memset(m,0,sizeof(m));
for(r = 2; r<=n; r++)
{
for(i = 1; i<=n-r+1; i++)
{