Math 版 (精华区)
发信人: kaola (坚决不灌水的考拉熊), 信区: Math
标 题: [合集]一个小学奥数题
发信站: 哈工大紫丁香 (2003年01月13日02:25:00 星期一), 站内信件
────────────────────────────────────────
bage (八哥@网事如疯@痴心难动) 于 2002年08月16日19:30:27 星期五 说道:
1998个1组成的数的平方的各位数之和是多少
────────────────────────────────────────
utah (明天去采灵芝) 于 2002年08月16日19:58:59 星期五 说道:
1998*1998
【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: 1998个1组成的数的平方的各位数之和是多少
────────────────────────────────────────
bage (八哥@网事如疯@痴心难动) 于 2002年08月16日20:09:57 星期五 说道:
不对:)有进位
【 在 utah (明天去采灵芝) 的大作中提到: 】
: 1998*1998
: 【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: : 1998个1组成的数的平方的各位数之和是多少
────────────────────────────────────────
utah (明天去采灵芝) 于 2002年08月16日20:34:13 星期五 说道:
17982?
【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: 不对:)有进位
: 【 在 utah (明天去采灵芝) 的大作中提到: 】
: : 1998*1998
────────────────────────────────────────
RenSheng (Blue Sky) 于 2002年08月16日21:39:43 星期五 说道:
23100?
【 在 utah (明天去采灵芝) 的大作中提到: 】
: 17982?
: 【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: : 不对:)有进位
────────────────────────────────────────
bage (八哥@网事如疯@痴心难动) 于 2002年08月16日22:24:20 星期五 说道:
我用matlab计算的是17896不知道对不?
我把matlab的程序贴出来,大家看对不对:)
a=1:1998;
b=1997:-1:1;
c=[a b];
for n=1:3995
if(c(n)/1000>1)
c(n+3)=c(n+3)+floor(c(n)/1000);
if(mod(c(n),1000)/100>1)
c(n+2)=c(n+2)+floor(mod(c(n),1000)/100);
if(mod(c(n),100)/10>1)
c(n+1)=c(n+1)+floor(mod(c(n),100)/10);
end
end
elseif(c(n)/100>1)
c(n+2)=c(n+2)+floor(c(n)/100);
if(mod(c(n),100)/10>1)
c(n+1)=c(n+1)+floor(c(n)/10);
end
elseif(c(n)/10>1)
c(n+1)=c(n+1)+floor(c(n)/10);
end
c(n)=mod(c(n),10);
end
summmm=sum(c);
【 在 utah (明天去采灵芝) 的大作中提到: 】
: 17982?
: 【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: : 不对:)有进位
────────────────────────────────────────
wz (root) 于 2002年08月17日12:33:05 星期六 说道:
1+2+3+.....+1997+1998+1997+1996+.....+3+2+1=1998*1998
【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: 1998个1组成的数的平方的各位数之和是多少
────────────────────────────────────────
microE (启吾) 于 Sat Aug 17 12:50:02 2002) 说道:
有进位的!!!!!!!!!!!!!!
【 在 wz (root) 的大作中提到: 】
: 1+2+3+.....+1997+1998+1997+1996+.....+3+2+1=1998*1998
: 【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: : 1998个1组成的数的平方的各位数之和是多少
────────────────────────────────────────
utah (明天去采灵芝) 于 2002年08月17日14:20:06 星期六 说道:
17982 programe
#include <stdio.h>
#define N 1998
int main(int argc, char* argv[])
{
int sum = 0;
int rMod = 0;
int cNum = 0;
for(int i=1;i<=N;i++)
{
cNum = i + rMod;
sum += cNum%10;
rMod = (cNum - cNum%10)/10;
}
for(int j=N-1;j>0;j--)
{
cNum = j + rMod;
sum += cNum%10;
rMod = (cNum - cNum%10)/10;
}
printf("%d",sum);
return 0;
}
【 在 utah (明天去采灵芝) 的大作中提到: 】
: 17982?
: 【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: : 不对:)有进位
────────────────────────────────────────
Systems (Systems) 于 2002年08月17日16:58:35 星期六 说道:
//hand
【 在 utah (明天去采灵芝) 的大作中提到: 】
: 17982 programe
: #include <stdio.h>
: #define N 1998
: int main(int argc, char* argv[])
: {
: int sum = 0;
: int rMod = 0;
: int cNum = 0;
: for(int i=1;i<=N;i++)
: {
: cNum = i + rMod;
────────────────────────────────────────
bage (八哥@网事如疯@痴心难动) 于 2002年08月17日19:08:20 星期六 说道:
答案是17982,可是小学奥数题是不可能用计算机计算呀
有什么手工计算的方法么?
【 在 utah (明天去采灵芝) 的大作中提到: 】
: 17982 programe
: #include <stdio.h>
: #define N 1998
: int main(int argc, char* argv[])
: {
: int sum = 0;
: int rMod = 0;
: int cNum = 0;
: for(int i=1;i<=N;i++)
: {
: cNum = i + rMod;
────────────────────────────────────────
bage (八哥@网事如疯@痴心难动) 于 2002年08月17日19:28:08 星期六 说道:
原来的程序有些问题:)少了整十整百整千的进位,这样整个计算就乱了
这次根据utah的算法用matlab计算了一下,这次对了,大家帮忙想想
怎么样手工计算呀
a=1:1998;
b=1997:-1:1;
c=[a b];
rmod=0;
for n=1:3995
temp=c(n)+rmod;
c(n)=mod(temp,10);
rmod=floor((temp-c(n))/10);
end
summmm=sum(c);
谢谢各位:)
【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: 我用matlab计算的是17896不知道对不?
: 我把matlab的程序贴出来,大家看对不对:)
: a=1:1998;
: b=1997:-1:1;
: c=[a b];
: for n=1:3995
: if(c(n)/1000>1)
: c(n+3)=c(n+3)+floor(c(n)/1000);
: if(mod(c(n),1000)/100>1)
: c(n+2)=c(n+2)+floor(mod(c(n),1000)/100);
: if(mod(c(n),100)/10>1)
────────────────────────────────────────
bage (八哥@网事如疯@痴心难动) 于 2002年08月17日19:48:09 星期六 说道:
我把计算后的c显示出来了,找出规律了:)
从个位开始依次为
1234567890234567890234567890……23456789(9为1998位上的数字)87654321097654321
097654321……097654321
(2+3+4+5+6+7+8+9)*1998/9+1+(9+7+6+5+4+3+2+1)*1998/9-1
=17982
【 在 bage (八哥@网事如疯@痴心难动) 的大作中提到: 】
: 原来的程序有些问题:)少了整十整百整千的进位,这样整个计算就乱了
: 这次根据utah的算法用matlab计算了一下,这次对了,大家帮忙想想
: 怎么样手工计算呀
: a=1:1998;
: b=1997:-1:1;
: c=[a b];
: rmod=0;
: for n=1:3995
: temp=c(n)+rmod;
: c(n)=mod(temp,10);
: rmod=floor((temp-c(n))/10);
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.423毫秒