4个回答
展开全部
解题思路:假设正整数 n 能表示为 i 个连续正整数之和且其第一个数为 x,则 n = x * i + (i - 1) * i/2,其中 n, x, i 都为正整数,所以如果 x = (n - (i-1)*i/2) / i 为正整数,则 n 就能表示为i个连续正整数之和。i 的取值范围为2-n/2 +2。
Python答案:
# !/usr/bin/env python
# -*- coding: utf-8 -*-
def foo(n):
for i in range(2, n/2 + 2):
if ((n - (i-1)*i/2) % i) == 0:
x = (n - (i-1)*i/2) / i
print '%d = ' % n,
for j in range(i):
print x + j,
print '\n'
break
else:
print 'cant'
foo(3)
foo(5)
foo(8)
foo(10)
foo(28)
foo(37)
foo(66)
foo(88)
foo(136)
foo(1024)
foo(5050)
Python答案:
# !/usr/bin/env python
# -*- coding: utf-8 -*-
def foo(n):
for i in range(2, n/2 + 2):
if ((n - (i-1)*i/2) % i) == 0:
x = (n - (i-1)*i/2) / i
print '%d = ' % n,
for j in range(i):
print x + j,
print '\n'
break
else:
print 'cant'
foo(3)
foo(5)
foo(8)
foo(10)
foo(28)
foo(37)
foo(66)
foo(88)
foo(136)
foo(1024)
foo(5050)
展开全部
#include<stdio.h>
void main()
{
int i,z,x,y,j;
printf("please input z:");//输入整数
scanf("%d",&z);
for(i=1;i<=z;i++)//i:整数序列的个数
for(x=1;x<=z;x++)
{
y=i-1+x;
if((y+x)*i==2*z)
{
for(j=x;j<=y;j++)
printf("%3d",j);
printf("\n");
}
}
}
void main()
{
int i,z,x,y,j;
printf("please input z:");//输入整数
scanf("%d",&z);
for(i=1;i<=z;i++)//i:整数序列的个数
for(x=1;x<=z;x++)
{
y=i-1+x;
if((y+x)*i==2*z)
{
for(j=x;j<=y;j++)
printf("%3d",j);
printf("\n");
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语言只是一个工具,如果不是嫌效率低的话,建议楼主选择: 毛毛虫丶 - 助理 三级 的答案。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Python答案:
# !/usr/bin/env python
# -*- coding: utf-8 -*-
def foo(n):
for i in range(2, n/2 + 2):
if ((n - (i-1)*i/2) % i) == 0:
x = (n - (i-1)*i/2) / i
print '%d = ' % n,
for j in range(i):
print x + j,
print '\n'
break
else:
print 'cant'
foo(3)
foo(5)
foo(8)
foo(10)
foo(28)
foo(37)
foo(66)
foo(88)
foo(136)
foo(1024)
foo(5050)
# !/usr/bin/env python
# -*- coding: utf-8 -*-
def foo(n):
for i in range(2, n/2 + 2):
if ((n - (i-1)*i/2) % i) == 0:
x = (n - (i-1)*i/2) / i
print '%d = ' % n,
for j in range(i):
print x + j,
print '\n'
break
else:
print 'cant'
foo(3)
foo(5)
foo(8)
foo(10)
foo(28)
foo(37)
foo(66)
foo(88)
foo(136)
foo(1024)
foo(5050)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询