当前位置: 首页 > news >正文

尼科彻斯定理-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);

        }

       

    }

}

        方法2:找规律,找到首个相加的奇数和输入的数之间的关系。

         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);

        }

    }

}

http://www.lryc.cn/news/121534.html

相关文章:

  • C++学习笔记——从面试题出发学习C++
  • WebAPIs 第二天
  • 解决macOS执行fastboot找不到设备的问题
  • Linux命令 -- chmod
  • 国产超低功耗32位MCU的应用
  • 将数组(矩阵)旋转根据指定的旋转角度scipy库的rotate方法
  • MFC创建和使用OCX控件
  • 【设计模式】抽象工厂模式
  • 小白带你学习linux的Redis3.2集群(三十三)
  • 嵌入式技术,就在你的手边!
  • nodejs+vue+elementui健康饮食美食菜谱分享网站系统
  • input 设置type=“number“,鼠标悬停关闭提示语
  • CSDN互利共赢玩法实战!!!
  • java.sql.SQLFeatureNotSupportedException 问题及可能的解决方法
  • 如何在 .NET Core WebApi 中处理 MultipartFormDataContent 中的文件
  • 【智力悬疑题】——【“找凶手”解法】
  • 【论文阅读】基于深度学习的时序异常检测——TimesNet
  • P3741 honoka的键盘
  • 编写第一个 React Native 程序
  • AI:03-基于深度神经网络的低空无人机目标检测图像识别的研究
  • Arcgis将一个shp依照属性表导出为多个shp
  • LeetCode.26,27,88三题-双指针的运用
  • 【Django】招聘面试管理01 创建项目运行项目
  • C# 数据类型
  • 竞赛项目 深度学习手势识别算法实现 - opencv python
  • 前端进阶html+css04----盒子模型
  • Go Web--Go Module
  • Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)
  • P4058 [Code+#1] 木材
  • Python学习笔记第五十二天(Pandas 安装)