⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1423.cpp

📁 这些是我到目前在PKU上做出的题目
💻 CPP
字号:
#include <stdio.h>
#include <math.h>

void exchange(int *p1,int *p2)
{
    int temp=*p1;
    *p1=*p2;
    *p2=temp;
}

int partition(int *pa,int *pb,int p,int r)
{
    int x=*(pa+r); 
    int i=p-1,j; 
    for(j=p;j<r;j++)
    {
        if(*(pa+j)<x)
        {
            i++;
            exchange((pa+i),(pa+j));
            exchange((pb+i),(pb+j));
        }
    }
    exchange((pa+r),(pa+i+1));
    exchange((pb+r),(pb+i+1));
    return i+1;
}
void quick_sort(int *pa,int *pb,int p,int r)
{
    if(p<r)
    {
        int q=partition(pa,pb,p,r);
        quick_sort(pa,pb,p,q-1);
        quick_sort(pa,pb,q+1,r);
    }
}

int main()
{
    int i,j,n,start,end;
    double temp;
    scanf("%d",&n);
    int *array=new int[n+1];
    int *sort=new int[n+1];
    int *index=new int[n+1];
    for(i=1;i<=n;i++)
    {
        *(sort+i)=i;
        scanf("%d",(array+i));
    }
    quick_sort(array,sort,1,n);
    for(i=1;i<=n;i++)
        *(index+*(sort+i))=i;
    double *log=new double[n+1];
    *array=0;

    *log=0;
    for(i=0;i<n;i++)
    {
        start=*(array+i);
        end=*(array+i+1);
        temp=*(log+i);
        for(j=start+1;j<=end;j++)
        {
            temp+=log10((double)j);
            
        }
        *(log+i+1)=temp;
    }

    int temp1=0;
    for(i=1;i<=n;i++)
    {
        //int temp=(*(log+(*(array+i)))+1);
        temp1=*(log+*(index+i))+1;
        printf("%d\n",temp1);
       
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -