小康 发表于 2005-7-22 23:09

贴5题

1495
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k,n;
//freopen("in.txt","r",stdin);
while(scanf("%d",&n),n)
   {
           i=0;j=n;
           while(n-->0)
           {
                   if(j<1) i++;
                   scanf("%d",&k);
                   if(k<j) j=k;
                   j--;

           }
           printf("%d\n",i);
   }
return 0;
}

小康 发表于 2005-7-22 23:10

1410
#include<stdio.h>
int main()
{
        int n,m,j;
        double len,newlen,diglen,i,k;
        scanf("%d",&n);
        while(n--)
        {
                scanf("%d",&m);
                len=0;newlen=0;diglen=1;j=0;i=0;
                do
                {
                        j++;
                        if(j==10) diglen++;
                        else if(j==100) diglen++;
                        else if(j==1000) diglen++;
                        else if(j==10000) diglen++;
                        else if(j==100000) diglen++;
                        else if(j==1000000) diglen++;
                        else if(j==10000000)
                                diglen++;
                        else if(j==100000000)
                                diglen++;
                        newlen+=diglen;
                        i=i+newlen;
                }while(i<m);
                i-=newlen;
                j=0;
                diglen=1;
                while(i<m)
                {
                        j++;
                        if(j==10) diglen++;
                        else if(j==100) diglen++;
                        else if(j==1000) diglen++;
                        else if(j==10000) diglen++;
                        else if(j==100000) diglen++;
                        else if(j==1000000) diglen++;
                        else if(j==10000000)
                                diglen++;
                        else if(j==100000000)
                                diglen++;
                        i+=diglen;
                }
                i-=diglen;
                k=diglen-(m-i);
                while(k-->0)               
                        j=j/10;               
                j=j % 10;
                printf("%d\n",j);
               

        }
        return 0;
}

剑乱 发表于 2005-7-23 13:19

虽然有些自己都做对,但比较一下思路,应该都会有所提高的。谢了!

晓东 发表于 2005-8-7 23:27

1439
#include<stdio.h>
#include<math.h>
main()
{
        float R_in,R_out;
        float x1,y1,x2,y2,x3,y3,z1,z2,z3;
        float a,b,c,l,S;
        while(scanf("%f%f%f",&x1,&y1,&z1)!=EOF)
        {
                scanf("%f%f%f%f%f%f",&x2,&y2,&z2,&x3,&y3,&z3);
      a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
                b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)+(z1-z3)*(z1-z3));
                c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)+(z3-z2)*(z3-z2));
      l=0.5*(a+b+c);
          S=sqrt(l*(l-a)*(l-b)*(l-c));
          R_in=S/l;
          R_out=a*b*c/(S*4);
      printf("%.3f\n",R_in*R_in/(R_out*R_out));
        }
}
页: [1]
查看完整版本: 贴5题