尼科彻斯定理-C语言/Java

简介: 尼科彻斯定理-C语言/Java

描述      


       验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。        

       例如:

               1^3=1

               2^3=3+5

               3^3=7+9+11

               4^3=13+15+17+19


  输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。(1≤m≤100)


输入描述

       输入一个int整数


输出描述

       输出分解后的string


示例

       输入:6

       输出:31+33+35+37+39+41


方法1:常规思路,直接计算


        C语言


#include <stdio.h>
int main() {
    int m;
    scanf("%d",&m);
    if(m==1)
    {
        printf("1");
        return 0;
    }
    int i=3;
    //用while来找m个奇数相加的第一个奇数
    while (1) {
        int sum=0,count=0;
        //求m个奇数的和
        for(int j=i;count!=m;j+=2)
        {
            sum+=j;
            count++;
        }
        //如果不满足条件,i的值为后一个奇数
        if(sum!=m*m*m)
        i+=2;
        else
        break;
    }
    for(int j=0;j<m;j++)
    {
        if(j==m-1)
        printf("%d",i+2*j);
        else
        printf("%d+",i+2*j);
    }
    return 0;
}


Java


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m=in.nextInt();
        if(m==1)
        {
            System.out.printf("1");
            return ;
        }
        int i=3;
        //用while来找m个奇数相加的第一个奇数
        while (true) {
            int sum=0,count=0;
            for(int j=i;count!=m;j+=2)
            {
                sum+=j;
                count++;
            }
            //如果不满足条件,i的值为后一个奇数
            if(sum!=m*m*m)
            i+=2;
            else
            break;
        }
        for(int j=0;j<m;j++)
        {
            if(j==m-1)
            System.out.printf("%d",i+2*j);
            else
            System.out.printf("%d+",i+2*j);
        }
    }
}

37591f9d479445a0b796da146d3f6e03.png


 C语言


#include <stdio.h>
int main() {
    int m;
    scanf("%d",&m);
    int i=m*m-m+1;
    for(int j=0;j<m;j++)
    {
        if(j==m-1)
        printf("%d",i+2*j);
        else
        printf("%d+",i+2*j);
    }
    return 0;
}


 Java


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m=in.nextInt();
        int i=m*m-m+1;
        for(int j=0;j<m;j++)
        {
            if(j==m-1)
            System.out.printf("%d",i+2*j);
            else
            System.out.printf("%d+",i+2*j);
        }
    }
}
目录
相关文章
|
6月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
63 0
|
6月前
|
Java C语言
C语言实验——输出字符串-java
C语言实验——输出字符串-java
|
29天前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
19 3
|
29天前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
37 3
|
29天前
|
Java 编译器 C语言
【一步一步了解Java系列】:探索Java基本类型与C语言的区别
【一步一步了解Java系列】:探索Java基本类型与C语言的区别
36 2
|
5月前
|
算法 Java C语言
Java中的算法与C语言中的函数
Java中的算法与C语言中的函数
41 2
|
机器学习/深度学习 Java 数据安全/隐私保护
密码检查-C语言/Java
密码检查-C语言/Java
95 0
|
6月前
|
存储 Java PHP
Java、PHP、C语言经典项目源码合集推荐(一)
Java、PHP、C语言经典项目源码合集推荐(一)
119 0
|
Java C语言
对字符串中所有单词进行倒排-C语言/Java
对字符串中所有单词进行倒排-C语言/Java
104 0
|
Java C语言
两个数组的交集-C语言/Java
两个数组的交集-C语言/Java
70 0