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

贴5题

1484另外有帖子讨论,不贴了.
1439做不出,哪个数学好的贴贴
1487
        #include<stdio.h>
        #include<string.h>
        int main()
        {
        int i,j,k,n,m,num,an,up;
        //freopen("in.txt","r",stdin);
        while(scanf("%d %d",&n,&m)!=EOF)
        {
                for (i=0;i<=n;i++)num=i+1;
                num=1;
                k=0;
                up=n;
                for (i=1;i<=n;i++)
                {
                        j=0;
                        while(j<=m)
                        {
                                j++;
                                up=k;
                                k=num;
                        }
                        num=num;
                        an=i;
                }
                for (i=1;i<n;i++)
                        printf("%d ",an);
                printf("%d\n",an);
        }
        return 0;
        }

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

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题