同济ACM上的两道入门题,用例子测试是正确的.但是却报告Wrong Answer
同济上的两道题
测试地址http://acm.tongji.edu.cn/problem.php
给的测试都对了。可是老是说Wrong Answer。请大虾帮忙看下.谢谢
******************************************************
我想问的是我的代码错在哪里,而不是要正确答案.
正确答案网上找的到.谢谢各位大虾先~
*******************************************************
蛇行矩阵 1009
#include <iostream.h>
int main()
{
int max;
cin>>max;
int p[100][100];
int i,j;
p[0][0]=1;
for(i=1;i<max;i++)
p[i][0]=p[i-1][0]+i;
for(i=0;i<max;i++)
for(j=1;j<max-i;j++)
{
p[i][j]=p[i][j-1]+j+i+1;
}
for(i=0;i<max;i++)
{ for(j=0;j<max-i;j++)
{
cout<<p[i][j];
if(j<max-i-1)
cout<<" ";
}
cout<<endl;
}
return 0;
}
敲七 1006
#include <iostream.h>
int PD(unsigned int x)
{
unsigned int i;
i=x;
if(i>=7)
{
if(i%7==0)
return 1;
else if(i%10==7)
return 1;
else
{
if(x%10==0)
if(PD(i/10))
return 1;
}
}
return 0;
}
int main()
{
unsigned int input,i;
cin>>input;
for(i=input;i>=7;i--)
if(PD(i)) cout<<i<<endl;
return 0;
}
问题点数:40、回复次数:5Top
1 楼A_B_C_ABC(黄瓜@YouCanDoIt)回复于 2006-05-04 02:32:50 得分 35
敲七 1006
#include <iostream>
using namespace std;
int PD(unsigned int x)
{
if(x%7==0)
return 1;
while(x)
{
if(x%10==7) return 1;
x=x/10;
}
return 0;
}
int main()
{
unsigned int input,i;
cin>>input;
for(i=7;i<=input;i++)
if(PD(i)) cout<<i<<endl;;
return 0;
}
Top
2 楼spehio2002(苏宁)回复于 2006-05-04 10:44:41 得分 3
没有好好看题目哦,题目说有多组测试数据的,你才提供了一组。
这样加一下
while(cin>>max)
{
.........
.........
.........
}
这样就可以了。
顺便提醒一下的,最好在输入数据之前先把数组里的蛇形数做好,即max=100先做好
然后输入一个测试数据后直接输出数据就行了,主要是为了时间限制。Top
3 楼spehio2002(苏宁)回复于 2006-05-04 10:47:20 得分 0
敲7的没有仔细看,应该是一样的问题。
LZ在TOJ上做题目要注意看测试数据有多少组,有的没有提供组数,有的是已经讲明了的。Top
4 楼pbdwadr(http://spaces.msn.com/members/menghao1218/)回复于 2006-05-04 12:37:11 得分 2
开始编译...[04:38:35]
编译通过![04:38:36]
/Main606672.code.cpp:20:2: warning: no newline at end of file
开始运行...[04:38:36]
运行结束[04:38:36]
Run ID User Problem Result Memory Time Language Date
606672 outsky 1009 Accepted 192 k 13 ms C++ 2006-04-22 16:38:35
--------------------------------------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int n;
while( cin >> n )
{
for( int a=0; a < n; a++ )
{
for( int b=0; b < n-a-1; b++ )
{
cout << (2*a*b + b*b + 3*b + a + a*a + 2 )/2 << " ";
}
cout << (2*a*(n-a-1) + (n-a-1)*(n-a-1) + 3*(n-a-1) + a + a*a + 2 )/2 << endl;
}
}
return 0;
}Top
5 楼pbdwadr(http://spaces.msn.com/members/menghao1218/)回复于 2006-05-04 12:41:16 得分 0
老大
你没按要求做题啊
是"多组测试数据"
要看清楚了....
both of the two problems are the same reason...Top




