宇贝教育
首页 / 信息技术

程序挑战台!!

生气的桔子2010-06-17 15:31:22 +0800 #1
大家来编程序啊!!
语言不限。(建议以主流的编程语言为主。)

挑战题目一:
从键盘输入n(n是一个正整数)。
打出如下方阵(n=6的情况)
  1    2     4     7   11   16
  3    5     8   12   17
  6    9   13   18
10  14   19
15  20
21

愿给您一片憩息心灵的家园
h4xx3d2010-06-17 15:31:22 +0800 #2
c++的

#include<iostream>
using namespace std;
int main()
{
    int n,i,j,temp;
    cin>>n;
    for(i=0;i<n;i++)
    {
                    for(j=0;j<n-i;j++)
                    {
                                      temp=(i+1)*(i+2)/2;
                                      temp+=j*(j+1+(2*i))/2;
                                      cout<<temp<<" ";
                    }
                    cout<<endl;
    }
    system("pause");
}
物理大腕2010-06-17 15:31:22 +0800 #3
吾爱吾师,吾更爱真理。
为尊者讳,为长者讳,为能者讳,是很重要的,但是最重要的是为死者讳。
欢迎光临我的博客: blog.163.com/axiang_1975
辞职ed
物理大腕2010-06-17 15:31:22 +0800 #4
两个字符型变量x和y,都是长整数(正数),比如x="325346236123542156465",y="45235364",求x/y的商与余数.

为简单起见,暂可省略验证数据合法性的语句,认为x和y都是正整数(最高位没有符号位,不能是0,最后一位没有小数点).

吾爱吾师,吾更爱真理。
为尊者讳,为长者讳,为能者讳,是很重要的,但是最重要的是为死者讳。
欢迎光临我的博客: blog.163.com/axiang_1975
辞职ed
h4xx3d2010-06-17 15:31:22 +0800 #5
#include<iostream>
using namespace std;
int main()
{
long x,y;
cin>>x;
cin>>y;
cout<<x/y<<endl;
cout<<x%y;
}
h4xx3d2010-06-17 15:31:22 +0800 #6
这个应该没问题。
数大时,可能会很慢。

#include<iostream>
#define LEN 50
#define X 0
using namespace std;
int sub(int a[],int b[],int c[],int max)
{
    int i,temp[LEN]={X};
    for(i=max;i>=0;i--)
    {
                       if(a>b)
                       {
                                    break;
                       }
                       if(a<b)
                       {
                                    return -1;
                       }
    }
    for(i=0;i<max;i++)
    {
                      temp=(a-b);
    }
    for(i=0;i<max-1;i++)
    {
                      if(temp<0)
                      {
                                   temp+=10;
                                   temp[i+1]-=1;
                      }
    }  
    for(i=0;i<LEN;i++)
    {
                      a=temp;
    }
    c[0]+=1;
    for(i=0;i<LEN-1;i++)
    {
                      if(c>=10)
                      {
                                  c-=10;
                                  c[i+1]+=1;
                      }
    }
    return 0;
}
int main()
{
    char x[LEN]={X},y[LEN]={X};
    int a[LEN]={X},b[LEN]={X},c[LEN]={X},i,j,l1,l2,max;
    cin>>x;
    cin>>y;
    for(i=0;i<LEN;i++)
    {
                      if(x==X)
                      {
                                 l1=i-1;
                                 break;
                      }
    }
    for(j=0;j<LEN;j++)
    {
                      if(y[j]==X)
                      {
                                 l2=j-1;
                                 break;
                      }
    }
    if(i>=j)
    max=i;
    else
    max=j;
    for(i=0;i<=l1;i++)
    {
                      a=((int)x[l1-i]-48);
    }
    for(j=0;j<=l2;j++)
    {
                      b[j]=((int)y[l2-j]-48);
    }
    for(;;)
    {
           if(sub(a,b,c,max)==-1)
           {
                                 break;
           }
    }
    cout<<"商:";
    for(i=LEN-1;i>=0;i--)
    {
                       if(c!=X)
                       {
                                  cout<<c;
                       }
    }
    cout<<endl;
    cout<<"余:";
    for(i=LEN-1;i>=0;i--)
    {
                       if(a!=X)
                       {
                                  cout<<a;
                       }
    }
    cout<<endl;   

    system("pause");
}
胡人2010-06-17 15:31:22 +0800 #7
都没发现这是06年的帖子吗?

笨巧果2010-06-17 15:31:22 +0800 #8
那又怎么了?这里没说过不许顶旧帖。
何况什么时候有了新发现什么时候发上来不是很好的事情么?

●董卓:洛阳就是豪华,在这里我都乐不思蜀了。        ●刘备:袁绍是个扶不起的阿斗。

●吕布:我家貂蝉是中国古代四大美人之首!                ●诸葛亮打开茅庐:说曹操,曹操就到,哈哈,刘备来了。
物理大腕2010-06-17 15:31:22 +0800 #9
晕,C++的,我还得转化为basic语言的才看着顺一点!C++的知道一点,但是"造旨"很低.

吾爱吾师,吾更爱真理。
为尊者讳,为长者讳,为能者讳,是很重要的,但是最重要的是为死者讳。
欢迎光临我的博客: blog.163.com/axiang_1975
辞职ed
h4xx3d2010-06-17 15:31:22 +0800 #10
这个要比前一个快很多。前天上传时,忘了禁用dz代码,导致程序上传时出问题。 #include<iostream>#define LEN 50#define X 0using namespace std;int comp(int a[],int b[]){    int i;    for(i=LEN-1;i>=0;i--)    {                       if(a[i]>b[i])                       {                                    return 0;                       }                       if(a[i]<b[i])                       {                                    return -1;                       }    }    return 0;}void powx(int a[],int max){    int i;    for(i=max;i>0;i--)    {                      a[i]=a[i-1];    }    a[0]=0;}int apch(int a[],int b[],int d[]){    int i,r,temp[LEN]={X};    for(i=0;i<LEN;i++)    {                      d[i]=b[i];    }    for(r=0;;r++)    {           if(comp(a,d)==-1)           {                            for(i=0;i<LEN;i++)                            {                                              d[i]=temp[i];                            }                            break;           }           for(i=0;i<LEN;i++)           {                             temp[i]=d[i];           }           powx(d,LEN);    }    return r-1;}void sub(int a[],int b[],int c[],int s){    int i,temp[LEN]={X};    for(i=0;i<LEN;i++)    {                      temp[i]=(a[i]-b[i]);    }    for(i=0;i<LEN-1;i++)    {                      if(temp[i]<0)                      {                                   temp[i]+=10;                                   temp[i+1]-=1;                      }    }      for(i=0;i<LEN;i++)    {                      a[i]=temp[i];    }    c[s]+=1;    for(i=0;i<LEN-1;i++)    {                      if(c[i]>=10)                      {                                  c[i]-=10;                                  c[i+1]+=1;                      }    }}int main(){    char x[LEN]={X},y[LEN]={X};    int a[LEN]={X},b[LEN]={X},c[LEN]={X},d[LEN]={X},i,j,l1,l2,max;    bool b1=false,b2=false;    cin>>x;    cin>>y;    for(i=0;i<LEN;i++)    {                      if(x[i]==X)                      {                                 l1=i-1;                                 break;                      }    }    for(j=0;j<LEN;j++)    {                      if(y[j]==X)                      {                                 l2=j-1;                                 break;                      }    }    if(l1>=l2)    max=l1;    else    max=l2;    for(i=0;i<=l1;i++)    {                      a[i]=((int)x[l1-i]-48);    }    for(j=0;j<=l2;j++)    {                      b[j]=((int)y[l2-j]-48);    }    for(;;)    {           if(apch(a,b,d)==-1)           {                                 break;           }           sub(a,d,c,apch(a,b,d));    }    cout<<"商:";    for(i=LEN-1;i>=0;i--)    {                       if(c[i]!=X)                       {                                  b1=true;                       }                       if(b1==true)                       {                                   cout<<c[i];                       }    }    cout<<endl;    cout<<"余:";    for(i=LEN-1;i>=0;i--)    {                       if(a[i]!=X)                       {                                  b2=true;                       }                       if(b2==true)                       {                                   cout<<a[i];                       }    }    cout<<endl;        system("pause");}

回复

你的名字:
内容:


当前分类的其他帖子