算法题集合(1)

(待更改)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
/*int main()                 //t4-1
{
    long long int s=1;
    for(int i=1;i<=20;i++)
        s*=i;
    printf("%lld",s);
    return 0;
}
2432902008176640000
Process returned 0 (0x0)   execution time : 0.175 s
Press any key to continue.*/



/*int fun(int m,int n)     //4-2
{
    long long int a=m;
    for(int i=2;i<=n;i++)
    {
        a*=m;
    }
    return a;
}
int main()
{
     int m,n;
     scanf("%d%d",&m,&n);
     printf("%lld",fun(m,n));
}
6 3
216
Process returned 0 (0x0)   execution time : 2.786 s
Press any key to continue.*/


/*double f(double n)      //4-3
{
    double a=1.0/2/n/n;
    return a;            //注意一定要有返回值
}

double main()
{
    double n;scanf("%lf",&n);
    double s=1;
    for(int i=1;i<=n;i++)
    {
        s=s*f(i);
    }
    printf("%.6lf",s);
}
2
0.062500
Process returned 8 (0x8)   execution time : 1.930 s
Press any key to continue.*/


/*int fun1(int a,int n)         //4-4
{
    for(int j=2;j<=n;j++)
    {
        a=10*a+a;
    }
    return a;
}

int main()
{
    int a,n;
    scanf("%d%d",&a,&n);
    int s=1;
    for(int i=1;i<=n;i++)
    {
        s=s*fun1(a,i);
    }
    printf("%d",s);
}
2 4
28344976
Process returned 0 (0x0)   execution time : 1.956 s
Press any key to continue.*/

/*double f1(int n)              //t4-5
{
    double s=1;
    for(int i=1;i<=n;i++)
        s*=i;
    return s;
}

double f2(int m,int k)
{
    return f1(m)/f1(k);
}

int main()
{
    double s1=1;int n;scanf("%d",&n);
    for(int i=1;i<=n;i++)
        s1=s1*f2(i,2*i);
    printf("%lf",s1);
}
2
0.041667
Process returned 0 (0x0)   execution time : 1.788 s
Press any key to continue.*/


/*int fun(int n)               //4-6
{
    double s1=1;
    for(int i=1;i<=n;i++)
        s1*=i;
    return s1;
}

int main()
{
    int n=1;double s=1;
    while(s<=2000000)
    {
        n++;
        s*=fun(n);
    }
    printf("%.0lf %d",s,n);
}

24883200 6
Process returned 0 (0x0)   execution time : 0.160 s
Press any key to continue*/


/*int main()             //4-7
{
    double m;double s=0;
    scanf("%lf",&m);        //注意取地址符号别丢了
    for(int i=1;i<=m/100;i++)
    {
        s+=1.0/i/i/100/100*1.0;
    }
    printf("%.12lf",s);
}
100
0.000100000000
Process returned 0 (0x0)   execution time : 3.180 s
Press any key to continue.*/

/*int isprime(int n)
{
    for(int i=2;i<=sqrt(n);i++)
        if(n%i==0)
        return 0;
    return 1;
}

int main()          4-8
{
    double s=1;
    for(int i=1;i<=100;i++)
    {
        if(isprime(i))
            s*=i;
    }
    printf("%lf",s);
}
2305567963945518800000000000000000000.000000
Process returned 0 (0x0)   execution time : 0.510 s
Press any key to continue.*/


/*double factorial(int n) {
    double result = 1.0;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}*/
/*double exp1(double x, int n_terms) {        4-9
    double sum = 1.0;
    double term = 1.0;

    for (int i = 1; i <= n_terms; i++) {
        term *= x / i;
        sum += term;
    }

    return sum;
}
int main() {
    double x;
    int n_terms;
    scanf("%lf", &x);
    scanf("%d", &n_terms);
    double result = exp1(x, n_terms);
    printf("e的%lf次方的近似值为(使用%d项): %lf\n", x, n_terms, result);
    return 0;
}*/
/*1 9
e的1.000000次方的近似值为(使用9项): 2.718282

Process returned 0 (0x0)   execution time : 3.274 s
Press any key to continue.*/


/*double sin1(double x,int n_terms)
{
    double sum=0.0;
    double term=1.0;int count=0;    //4-10
    for(int i=1;i<=n_terms;i++)
    {
        term*=x/i;
        if(i%2==1)
        {count++;
        if(count%2==1)
         sum+=term;
         else sum-=term;
        }
    }
    return sum;
}
int main()
{
    double x,n;
    scanf("%lf%lf",&x,&n);
    double s=sin1(x,n);
    printf("%lf",s);
}
1.6 20
0.999574
Process returned 0 (0x0)   execution time : 6.947 s
Press any key to continue.*/


/*double factorial(double n)               //4-11
{
    double s1=1.0;                         //数太小了
    for(int i=1;i<=n;i++)
        s1*=i;
    return s1;
}
int main()
{
    double s=1.0;
    for(double i=2;i<=10;i+=2)
        s*=1/factorial(i);
    printf("%.15lf",s);
}
0.000000000000000
Process returned 0 (0x0)   execution time : 0.049 s
Press any key to continue.*/

/*int main()                 //4-12
{
    int s=13;
    for(int i=2;i<=13;i++)
    {
        s=13*s%1000;
    }
    printf("%d",s);
}*/
/*253
Process returned 0 (0x0)   execution time : 0.033 s
Press any key to continue.*/

/*int factorial(int n)          //4-13
{
    double s=1;
    for(int j=1;j<=n;j++)
        s*=j;
    return s;
}
int main()
{
    for(int i=100;i<=999;i++)
        if((factorial(i%100/10)+factorial(i%10)+factorial(i/100))==i) //注意个位,十位,百位的正确表示
        printf("%d\n",i);
    return 0;
}
145

Process returned 0 (0x0)   execution time : 0.034 s
Press any key to continue.*/

//1
/*int f(int n)
{
    if(n==1) return 1;
    f(n)=f(n-1)*3+1;       经典错误写法
    return f(n);
}*/
/*int f(long long int n)       //4-14
{
    if(n==1) return 1;      //正解
    else return f(n-1) * 3 + 1;
}

int main()
{
    long long int n;
    scanf("%lld",&n);
    printf("%lld",f(n));
}
14
2391484
Process returned 0 (0x0)   execution time : 2.557 s
Press any key to continue.*/
/*int f(int n)                             //4-15
{
    if(n==1||n==2) return 1;
    else if(n%2==1) return f(n-2)*2;
    else if(n%2==0) return f(n-2)*3;
}
int main()
{
    printf("%d %d",f(9),f(10));
    return 0;
}*/

/*int main()                 //4-16
{
    int s=1;
    for(int i=1;i<100;i++)
    {
        if(i%10==i/10)
            s*=i;
    }
    printf("%d",s);
}
83466368
Process returned 0 (0x0)   execution time : 0.247 s
Press any key to continue.*/


/*int main()                 //4-17
{
	long number = 0;
    long num =0,k,b=0;
    for(number=0;number<=200000;number++){
			for(k=10,num=number;(num/=10)>0;k*=10);
			  b = (number*number)%k;
        if(b==number){
            printf("%d\n",number);
        }
    }
    return 0;
}
0
1
5
6
25
76
376
625
9376

Process returned 0 (0x0)   execution time : 0.374 s
Press any key to continue.*/

/*int main(){                //4-18
	double x=0;
	double y=1.0063;
	for(int i=0;i<5;i++){
		x+=1000;
		for(int i=0;i<12;i++){
			x=x/y;
		}
	}
	printf("%lf",x);
	return 0;
}
4010.925179
Process returned 0 (0x0)   execution time : 0.328 s
Press any key to continue.*/


/*int main()
{
    int x;scanf("%d",&x);
    for(int i=100;i<=999;i++)
    {
        if((i/100)*(i%10)*(i%100/10)==x)
            printf("%d\n",i);
    }
}
10
125
152
215
251
512
521

Process returned 0 (0x0)   execution time : 4.475 s
Press any key to continue.*/

/*int main()                      4-20
{
    double s=0;int n;scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        s+=1.0*(2*n-1)*(2*n+1)/n/n/4;
    }
    printf("%6lf",s);
}
10
9.975000
Process returned 0 (0x0)   execution time : 2.620 s
Press any key to continue.*/

/*void fun(int n)               //4-21
{
    int count=0;
    int s=1;
    for(int i=2;i<=n;i++)
    {
        int flag=1;
        for(int j=2;j<=sqrt(i);j++)
        {
            if(i%j==0)
               {
                   flag=0;break;
               }
        }
       if(flag==1)  {s*=i;count++;}
    }
    printf("%d %d",count,s);
}
int main()
{
    int n;
    scanf("%d",&n);
    fun(n);
}
5
3 30
Process returned 0 (0x0)   execution time : 6.147 s
Press any key to continue.*/


/*int a[51];int b[51];int c[51];d[51];     //4-22
int main()
{
    int count=0;
    double s=1;a[1]=2;
    for(int i=2;i<=50;i++)   //前50项a[i]的值
    {
        a[i]=a[i-1]+5;
    }
    for(int i=1;i<=50;i++)
    {
        s*=a[i];
        b[i]=s;
        if(b[i]%4==2) c[i]=s;
    }
    for(int i=1,j=1;i<=50;i++)
    {
        if(c[i]!=0)
        {
            d[j]=c[i];
            j++;//别漏了
            count++;
        }
    }
    for(int i=1;i<=count;i++)
        printf("%d ",d[i]);
    printf("\n%d",count);
    return 0;
}*/
/*2 14
2
Process returned 0 (0x0)   execution time : 0.040 s
Press any key to continue.*/



/*int main()                  //4-23
{
    int n;scanf("%d",&n);
    int sn=n+1;int sn1=n;
    while(sn1<n||sn1==n)
    {
        sn1++;
        sn++;
    }
    printf("%d",sn);
}
5
7
Process returned 0 (0x0)   execution time : 1.616 s
Press any key to continue.*/


/*int main()                 //4-24
{
    int w[100];
    int s=0;
    int a,n;
    scanf("%d %d",&a,&n);
    for(int i=1;i<=n;i++)
    {
        s=s*10+a;w[i]=s;
    }
    for(int i=1;i<=n-1;i++)
    {
        s-=w[i];
    }
    printf("%d",s);
}
3 6
296298
Process returned 0 (0x0)   execution time : 2.733 s
Press any key to continue.*/


/*long long t0(const char *s);

int main() {
    char str[100];                     //4-25  ai风格
    scanf("%99s", str);
    long long product = t0(str);

    printf("%lld\n", product);

    return 0;
}

long long t0(const char *s) {
    long long product = 1;
    while (*s != '\0') {
        if (*s % 2 != 0) {
            product *= (long long)(*s);
        }
        s++;
    }
    return product;
}*/

/*int t0(int n)
{
    int s=1;
    for(int i=1;i<=n;i++)        //4-26
    {
        s*=i;
    }
    return s;
}
int main()
{
    int c;
    int n,r;
    scanf("%d %d",&n,&r);
    c=t0(n)/t0(r)/t0(n-r);
    printf("%d",c);
}*/


/*int main()
{
    int m;scanf("%d",&m);      //4-27
    double s=0.5;
    for(double i=2;i<=m;i++)
    {
        s=s/2/i/i;
    }
    printf("%.18lf",s);
    return 0;
}
9
0.000000000000014832
Process returned 0 (0x0)   execution time : 2.774 s
Press any key to continue.*/



/*int main()                     //4-28
{
    double s=1;int m;scanf("%d",&m);
    for(double i=1;i<=2*m+1;i+=2)
        s/=i;
    printf("%.16lf",s);
    return 0;
}
2
0.0666666666666667
Process returned 0 (0x0)   execution time : 3.078 s
Press any key to continue.*/

/*int main()                     //4-29
{
    double s1=1,s2=1,s;
    for(int i=1;i<=100;i+=2)
        s1*=i;
    for(int i=2;i<=100;i+=2)
    {
        s2*=i;
    }
    s=s1+s2;
    printf("%lf",s);
}*/


/*int main()                //4-30
{
    double s=0;
    for(double i=4;i<=12;i+=10)
    {
        s+=1/i/(i+2);
    }
    s*=2;
    printf("%.12lf",s);
    return 0;
}
0.083333333333
Process returned 0 (0x0)   execution time : 0.148 s
Press any key to continue.*/
/*int factorial(int n)
{
    double s=1;
    for(int i=1;i<=n;i++)        //4-31
        s*=i;
    return s;
}

int main()
{
    double n,x;
    scanf("%lf %lf",&n,&x);
    double s=x;
    for(int i=1;i<=n;i++)
    {
        if(i%2==1)
        s-=pow(x,2*i+1)/(2*i+1)/factorial(i);
        else  s+=pow(x,2*i+1)/(2*i+1)/factorial(i);
    }
    printf("%lf",s);
}
1 1
0.666667
Process returned 0 (0x0)   execution time : 2.384 s
Press any key to continue.*/



/*int main()
{
    int count=1;
    int init=3,s=3;
    while(s!=381)
    {
        init*=2;
        s+=init;
        count++;
    }
    printf("%d",count);
    return 0;
}
7
Process returned 0 (0x0)   execution time : 0.045 s
Press any key to continue.*/

/*int f1(int n,int a)
{
    int t=a;
    f1(1,a)=a;          //错误,易错
    if(n==1) return f1(n,a);
    else return 10*f1(n-1,a)+t;
}
int main()
{
    int n,a;
    scanf("%d %d",&n,&a);
    printf("%d",f1(n,a));
    return 0;
}*/


/*int f1(int n, int a) {
    if (n == 1) {
        return a;
    } else {
        return 10 * f1(n - 1, a) + a;
    }
}

int main() {
    int n, a;
    scanf("%d %d", &n, &a);
    printf("%d", f1(n, a));
    return 0;
}*/

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值