| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1691 人关注过本帖
标题:[讨论]]第十三期编程题目
只看楼主 加入收藏
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

n不能是7;
使得pow(k,m)和pow(k,n)均大于或等于1000,


2007-04-27 20:35
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
以下是引用crackerwang在2007-4-27 18:32:56的发言:
这起题目比较简单.
大家加油.尤其是第二个只要多写点条件都能过.第二个大家自己
http://acm.pku.edu.cn/JudgeOnline/problem?id=2042提交.一定要注意输入输出不要输出没有用的东西.
第一个题目我给几个测试数据.要是都对的话就可以了:
输入      输出
25 7错,应为3
125 6错,应为7
1000 3错,应为17
100000 102错,应为277.具体如下
序号 a b c d 105==a2+b2+c2+d2
1: 0 0 12 316
2: 0 0 100 300
3: 0 0 180 260
4: 0 28 96 300
5: 0 28 204 240
6: 0 60 80 300
7: 0 60 116 288
8: 0 60 192 244
9: 0 64 180 252
10: 0 80 132 276
11: 0 80 204 228
12: 0 84 100 288
13: 0 84 188 240
14: 0 100 180 240
15: 0 108 144 260
16: 0 132 180 224
17: 0 156 180 208
18: 4 8 8 316
19: 4 8 196 248
20: 4 20 160 272
21: 4 32 64 308
22: 4 32 208 236
23: 4 56 188 248
24: 4 64 148 272
25: 4 68 88 296
26: 4 68 184 248
27: 4 80 140 272
28: 4 88 196 232
29: 4 104 188 232
30: 4 112 116 272
31: 4 112 148 256
32: 4 116 208 208
33: 4 124 152 248
34: 8 20 200 244
35: 8 28 136 284
36: 8 36 36 312
37: 8 36 216 228
38: 8 44 56 308
39: 8 44 140 280
40: 8 56 220 220
41: 8 92 104 284
42: 8 104 172 244
43: 8 108 204 216
44: 8 136 148 244
45: 8 152 196 196
46: 12 24 44 312
47: 12 24 108 296
48: 12 24 152 276
49: 12 24 172 264
50: 12 44 168 264
51: 12 72 84 296
52: 12 72 136 276
53: 12 84 120 280
54: 12 84 152 264
55: 12 108 136 264
56: 16 16 68 308
57: 16 28 64 308
58: 16 28 208 236
59: 16 32 116 292
60: 16 32 164 268
61: 16 44 112 292
62: 16 52 68 304
63: 16 52 128 284
64: 16 68 172 256
65: 16 68 212 224
66: 16 80 212 220
67: 16 112 124 268
68: 16 112 140 260
69: 16 128 196 212
70: 16 164 172 208
71: 20 28 80 304
72: 20 32 176 260
73: 20 32 220 224
74: 20 40 56 308
75: 20 40 140 280
76: 20 52 136 280
77: 20 76 200 232
78: 20 80 112 284
79: 20 80 160 260
80: 20 88 116 280
81: 20 92 160 256
82: 20 136 140 248
83: 20 140 200 200
84: 20 160 160 220
85: 24 24 188 252
86: 24 28 36 312
87: 24 28 216 228
88: 24 60 132 280
89: 24 60 168 260
90: 24 108 168 244
91: 24 120 132 260
92: 24 132 136 252
93: 24 132 188 216
94: 24 152 156 228
95: 24 168 172 204
96: 28 28 104 296
97: 28 32 76 304
98: 28 36 168 264
99: 28 40 100 296
100: 28 48 144 276
101: 28 52 64 304
102: 28 52 176 256
103: 28 56 92 296
104: 28 56 104 292
105: 28 64 172 256
106: 28 64 212 224
107: 28 72 156 264
108: 28 76 208 224
109: 28 84 96 288
110: 28 88 104 284
111: 28 96 180 240
112: 28 100 104 280
113: 28 104 164 248
114: 28 104 200 220
115: 28 112 176 236
116: 28 136 164 232
117: 28 144 192 204
118: 28 156 168 216
119: 32 32 196 244
120: 32 44 68 304
121: 32 44 128 284
122: 32 64 188 244
123: 32 76 112 284
124: 32 76 160 260
125: 32 92 176 244
126: 32 112 164 244
127: 32 116 188 224
128: 32 128 164 236
129: 32 140 176 220
130: 32 148 164 224
131: 32 172 176 196
132: 36 48 80 300
133: 36 48 116 288
134: 36 48 192 244
135: 36 64 108 288
136: 36 108 192 224
137: 36 136 168 228
138: 40 40 44 308
139: 40 40 220 220
140: 40 52 200 236
141: 40 56 100 292
142: 40 68 124 280
143: 40 88 100 284
144: 40 100 100 280
145: 40 100 164 248
146: 40 100 200 220
147: 40 116 200 212
148: 40 140 152 236
149: 40 140 184 212
150: 40 152 164 220
151: 44 52 88 296
152: 44 52 184 248
153: 44 56 152 268
154: 44 60 192 240
155: 44 68 208 224
156: 44 80 80 292
157: 44 80 208 220
158: 44 88 136 268
159: 44 96 192 228
160: 44 112 188 224
161: 44 116 152 248
162: 44 128 196 208
163: 44 156 192 192
164: 44 168 168 204
165: 48 60 64 300
166: 48 64 132 276
167: 48 64 204 228
168: 48 116 144 252
169: 48 132 144 244
170: 48 144 188 204
171: 52 64 112 284
172: 52 64 160 260
173: 52 88 184 236
174: 52 124 128 256
175: 52 136 152 236
176: 52 136 184 212
177: 52 172 184 184
178: 52 176 176 188
179: 56 56 92 292
180: 56 56 148 268
181: 56 68 68 296
182: 56 68 196 232
183: 56 76 172 248
184: 56 88 92 284
185: 56 88 172 244
186: 56 92 100 280
187: 56 92 164 248
188: 56 92 200 220
189: 56 116 148 248
190: 56 116 172 232
191: 56 152 188 196
192: 60 60 72 296
193: 60 60 120 280
194: 60 60 152 264
195: 60 80 84 288
196: 60 80 180 240
197: 60 96 172 240
198: 60 120 120 260
199: 60 120 136 252
200: 60 120 188 216
201: 60 144 180 208
202: 64 80 148 260
203: 64 84 192 228
204: 64 92 116 272
205: 64 92 148 256
206: 64 108 144 252
207: 64 112 196 212
208: 64 132 192 204
209: 64 148 160 220
210: 64 172 176 188
211: 68 116 128 256
212: 68 124 136 248
213: 68 124 200 200
214: 68 140 160 224
215: 68 152 184 196
216: 72 72 116 276
217: 72 84 168 244
218: 72 108 116 264
219: 72 136 156 228
220: 76 104 148 248
221: 76 104 172 232
222: 76 112 196 208
223: 76 136 148 232
224: 80 80 124 268
225: 80 80 140 260
226: 80 92 140 256
227: 80 92 160 244
228: 80 96 180 228
229: 80 108 156 240
230: 80 112 116 260
231: 80 140 160 220
232: 80 156 180 192
233: 80 160 172 196
234: 84 144 188 192
235: 84 152 168 204
236: 88 100 184 220
237: 88 104 148 244
238: 88 116 152 236
239: 88 116 184 212
240: 88 124 124 248
241: 88 136 188 196
242: 92 104 164 232
243: 92 112 116 256
244: 92 172 176 176
245: 96 96 172 228
246: 96 156 172 192
247: 100 100 136 248
248: 100 100 200 200
249: 100 108 144 240
250: 100 136 152 220
251: 100 144 180 192
252: 100 152 164 200
253: 104 116 148 232
254: 104 136 188 188
255: 104 140 172 200
256: 108 116 168 216
257: 108 120 120 244
258: 108 132 144 224
259: 108 136 168 204
260: 108 144 156 208
261: 112 112 124 244
262: 112 116 160 220
263: 112 124 128 236
264: 112 124 148 224
265: 112 164 172 176
266: 116 128 164 208
267: 116 136 152 212
268: 116 152 172 184
269: 116 160 160 188
270: 120 120 172 204
271: 124 152 152 196
272: 128 140 160 196
273: 132 132 136 216
274: 136 140 148 200
275: 148 160 160 164
276: 152 152 164 164
277: 152 156 156 168
2007-04-28 06:41
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
123454321的“分解”方案肯定不止27种。
以1234321的“分解”为例已有28773种方案,
其中a,b,c,d乘积最大的方案是
1234321==544*544+545*545+548*548+584*584
2007-04-28 07:11
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
楼上的哥哥你把题目全看反了
我给的数据是测试k尾相等数的不是测试四平方数的
难到我在哪里表达有问题?????

2007-04-28 07:50
hujian100
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-14
收藏
得分:0 

第一题我根据三楼的思想也写了自己的程序,但发现有些结果运行不对,也不知道问题出在什么地方了,还请高手帮忙看看啊 关注中……多谢了!

#include <stdio.h>
#include <math.h>

void main()
{
int m, n, flag=1;
long int k, km_mant, kn_mant;
printf("Please entry the value of k(k>1):\n");
scanf("%d", &k);
for(m=2;;m++)
{
if( pow(k,m)<1000 )
continue;
else
{
km_mant = (int)pow(k,m)%1000;
for(n = 1; n < m; n++)
{
if( pow(k,n) >= 1000 )
{
kn_mant = (int)pow(k,n)%1000;
if( km_mant == kn_mant )
{
printf("%d+%d=%d\n", m, n, m+n);
flag=0;
break;
}
}
}
}
if(flag==0)
break;
}
printf("%d\t%d\n", (int)pow(k,m),(int)pow(k,n));
printf("%d\t%d\n", km_mant, kn_mant);
}


2007-04-28 21:18
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
/*----------------------------
Lagrange's Four-Square Theorem
-----------------------------*/
#include <stdio.h>
#include <math.h>
long Lagrange(long nn)
{ long way=0;
long a,b,c,d,a2,b2,c2,d2;
for(a=0,a2=a*a;a2<nn;a++,a2=a*a)
for(b=a,b2=b*b;a2+b2<nn;b++,b2=b*b)
for(c=b,c2=c*c,d=(long)sqrt(nn-a2-b2-c2),d2=d*d;d2>=c2;
d--,d2=d*d,c=(long)sqrt(nn-a2-b2-d2),c2=c*c)
if(a2+b2+c2+d2==nn)way++;
else if(c==b)
{
c=(long)sqrt(nn-a2-b2-d2);
if(a2+b2+c*c+d2==nn)way++;
}
return way;
}
main()
{
long n;
while(scanf("%ld",&n))
{
if(n<=0)break;
printf("%ld\n",Lagrange(n));
}
}
2007-04-29 07:30
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用hujian100在2007-4-28 21:18:07的发言:

第一题我根据三楼的思想也写了自己的程序,但发现有些结果运行不对,也不知道问题出在什么地方了,还请高手帮忙看看啊 关注中……多谢了!

#include <stdio.h>
#include <math.h>

void main()
{
int m, n, flag=1;
long int k, km_mant, kn_mant;
printf("Please entry the value of k(k>1):\n");
scanf("%d", &k);
for(m=2;;m++)
{
if( pow(k,m)<1000 )
continue;
else
{
km_mant = (int)pow(k,m)%1000;
for(n = 1; n < m; n++)
{
if( pow(k,n) >= 1000 )
{
kn_mant = (int)pow(k,n)%1000;
if( km_mant == kn_mant )
{
printf("%d+%d=%d\n", m, n, m+n);
flag=0;
break;
}
}
}
}
if(flag==0)
break;
}
printf("%d\t%d\n", (int)pow(k,m),(int)pow(k,n));
printf("%d\t%d\n", km_mant, kn_mant);
}

你和三楼思想还是不一样的.
你的不能计算出很大的n,m因为你的pow()是会超出数据范围


2007-04-29 08:48
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用yu_hua在2007-4-29 7:30:00的发言:
/*----------------------------
Lagrange's Four-Square Theorem
-----------------------------*/
#include <stdio.h>
#include <math.h>
long Lagrange(long nn)
{ long way=0;
long a,b,c,d,a2,b2,c2,d2;
for(a=0,a2=a*a;a2<nn;a++,a2=a*a)
for(b=a,b2=b*b;a2+b2<nn;b++,b2=b*b)
for(c=b,c2=c*c,d=(long)sqrt(nn-a2-b2-c2),d2=d*d;d2>=c2;
d--,d2=d*d,c=(long)sqrt(nn-a2-b2-d2),c2=c*c)
if(a2+b2+c2+d2==nn)way++;
else if(c==b)
{
c=(long)sqrt(nn-a2-b2-d2);
if(a2+b2+c*c+d2==nn)way++;
}
return way;
}
main()
{
long n;
while(scanf("%ld",&n))
{
if(n<=0)break;
printf("%ld\n",Lagrange(n));
}
}

这个因该能过了


2007-04-29 08:50
洛川
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-28
收藏
得分:0 
#include <stdio.h>
#include <math.h>
main()
{int n,a,b,c,d,w=0;
scanf("%d",&n);
for(a=0;a<=sqrt(n/4);a++)
for(b=a;b<=sqrt(n/3);b++)
for(c=b;c<=sqrt(n/2);c++)
for(d=c;d<=sqrt(n);d++)
if(a*a+b*b+c*c+d*d==n)
w++;
printf("\n%d\n",w);
getch();
}
第二题,不知道运算时间要多久
请问lz,你们运算时间是怎么看的呀?
我怎么看不到??

2007-04-29 10:05
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

你可以到我给那个连接去提交就知道了.
或者用
include<time.h>
int begin,end
begin=clock();
end=clock();
end-begin;
但是时间很不稳定.而且也和机器有很大关系


2007-04-29 10:22
快速回复:[讨论]]第十三期编程题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved