小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。
比如:
2^3 = 8 = 3 + 5
3^3 = 27 = 7 + 9 + 11
4^3 = 64 = 1 + 3 + ... + 15
虽然他没有想出怎么证明,但他想通过计算机进行验证。 请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。 请严格按照要求,通过浏览器提交答案。 注意:只提交一个整数,不要写其它附加内容,比如:说明性的文字。
答案 (12分)
代码:
#include <iostream> #include <cstdio> using namespace std; int main() { int n; scanf("%d",&n); n = n * n * n; for(int i = 1;i < n;i += 2) { for(int j = 1;(i + j) * (j + 1) <= n;j ++) { if((i + j) * (j + 1) == n) { for(int k = 0;k <= j;k ++) { printf("%d ",i + k * 2); } putchar('\n'); } } } }
import java.util.Scanner; public class Main { private static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int n = sc.nextInt(); n = n * n * n; for(int i = 1;i <= n;i += 2) { int j = 1; while((i + j) * (j + 1) < n) j ++; if((i + j) * (j + 1) == n) { System.out.println(i); break; } } } }