[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p p=输入一个数字(大于0且小于2^32):
  3. set a=0
  4. :begin
  5. set ok=
  6. set /a a+=1
  7. if %a% gtr %p% goto over
  8. set b=%a%
  9. set d=%a%
  10. :do
  11. set /a b=b+1
  12. set /a d=d+b
  13. if %d% lss %p% goto :do
  14. if %d% equ %p%  (
  15. for /l %%i in (%a% 1 %b% ) do set ok=!ok!+%%i
  16. echo %p%=!ok:~1!
  17. echo.&goto begin
  18. )
  19. if %d% gtr %p% goto begin
  20. :over
  21. echo 完成了&pause>nul
复制代码
只有这个逐个算下去的思路  效率实在太低了
1

评分人数

o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

这么久了
没有人有效率更高的思路吗?我再想想
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

翻来了资料:
在一些小学奥数书上有这样一类题,比如:把2007分拆成若干个连续自然数之和,有哪几种拆法?
最好想的就是1003+1004=2007,其余的如何找?
假设2007拆成了以a为首项的k个连续自然数之和,即2007=a+(a+1)+(a+2)+……+(a+k-1),
即〔a+(a+k-1)〕×k/2=2007
即k×(2a+k-1)=2007×2=2×3×3×223=4014
而k和(2a+k-1)必为一奇一偶,(且k<2a+k-1)所以4014有几个大于1的奇约数,那么2007就有几种分拆方法。
4014的大于1的奇约数有3、9、223、669、2007共5个,即2007有5种拆成连续自然数之和的方法。
而2007的奇约数和4014的奇约数个数相同,所以2007的大于1的奇约数的个数就是2007拆成连续自然数之和的方法数。
2007=3×3×223的大于1的奇约数有3、9、223、669、2007共5个。
4014=3×1338,即k=3,(2a+k-1)=1338,解出a=668, 2007拆成以668为首项的3个连续自然数之和;
    =9×446, 即k=9,(2a+k-1)=446, 解出a=219, 2007拆成以219为首项的9个连续自然数之和;
    =223×18,即k=18,(2a+k-1)=223,解出a=103, 2007拆成以103为首项的18个连续自然数之和;
    =669×6, 即k=6,(2a+k-1)=669, 解出a=332, 2007拆成以332为首项的6个连续自然数之和;
    =2007×2,即k=2,(2a+k-1)=2007,解出a=1003,2007拆成以1003为首项的2个连续自然数之和;
下面是2007的具体的5种拆分:
2007=668+669+670
2007=219+220+221+222+223+224+225+226+227
2007=103+104+105+……+118+119+120
2007=332+333+334+335+336+337
2007=1003+1004
结论:如果自然数n有几个大于1的奇约数,那么n就有几种方法拆成连续自然数之和。
推论:2的方幂拆不成连续自然数之和。
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

小学奥数..........................哎 ╮(╯▽╰)╭
这个比较容易看懂 关键是我数学没学好啊:
450分拆成若干连续自然数的和,有8种方法。
149+150+151,111+112+113+114,88+89+90+91+92,
46+47+…+54,32+33+…+43,23+24+…+37,13+14+…+32,6+7+…+30

设k+1,k+2,...,k+n是n个连续的自然数,如果
(k+1)+...+(k+n)=(k+k+n+1)n/2=450
则((2k+n+1)n=900, 由(2k+n+1)>n,故得n<30且能被900整除.
可取n=2,3,4,5,6,9,10,12,15,20,25,
n=2,2k+n+1=450, 与2k+n+1是奇数矛盾。
n=3,2k+n+1=300,解得k=148,  149+150+151
n=4,2k+n+1=225,解得k=110,  111+112+113+114
n=5,2k+n+1=180,解得k=87,   88+89+90+91+92
n=6,2k+n+1=150, 与2k+n+1是奇数矛盾
n=9,2k+n+1=100,解得k=45,  46+47+48+49+50+51+52+53+54
n=10,2k+n+1=90, 与2k+n+1是奇数矛盾
n=12,2k+n+1=75,解得k=31,   32+33+...+43
n=15,2k+n+1=60,解得k=22,   23+24+25+...+37
n=20,2k+n+1=45,解得k=12,   13+14+…+32
n=25,2k+n+1=36,解得k=5,    6+7+…+30

[ 本帖最后由 基拉freedom 于 2009-8-29 20:32 编辑 ]
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

想通了 就让我弱弱的讲下7L的思路吧:
set/a n+=1,x=2*s-n*n-n,y=2*n,mod=x%%y,a=x/y,m=(n*n+n)/2

(2a+n+1)n/2=s
2an+n^2+n=2s
2*s-n*n-n=2an(这个就是x)
然后 a=(2S-n^2-n)/2n(2n=y)
用mod=x%%y来判断2n与2an中 n与a是否一奇一偶 是 就输出
这个其实是一个变形

哇 数学真是伟大..................我要加油学数学........
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

回复 14楼 的帖子

2^n是不会有分解的
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

回复 18楼 的帖子

28 44是可分的
n*(2K+n+1)=28*2=56
取n=7 则2K+n+1=8 K=0
则从1开始加到7

n*(2K+n+1)=44*2=88
取n=2 2K+n+1=44 舍
取n=4 2K+n+1=22舍
取n=8 2K+n+1=11 k=1
从2开始加到9
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

返回列表