生气的桔子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");}
回复