蓝桥杯c语言试``题 基础练习 Huffuman树
#include <stdio.h>
int main()
{
int p,i,j,k,n,temp;
int sum=0;
int a[200];
scanf("%d",&n);
for(p=0;p<n;p++)
{
scanf("%d",&a[p]);
}
for(k=0;k<n-1;k++)//三重循环
{
for(i=k;i<n;i++)//二重循环用来排序,从小到大
{
for(j=i;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
a[k+1]=a[k]+a[k+1];
sum=sum+a[k+1];
a[k]=0;
}
printf("%d",sum);
return 0;
}
这道题我是找规律找出来的,有点投机了,具体是每次排好序后找到两个小的数相加,然后给赋值给相对大的数,相对小的数赋值为0,依次类推,然后n个数循环(n-1)次,然后用sum存储就ok了。