【程序3】

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个"水仙花数",153=1的三次方+5的三次方+3的三次方。

解法1:

  较为简单的思路,也是我一开始想到的,但是依旧没能自己实现出来.

  int num ;  //待判断整数

  int m,n,q;  //三位数的百位,十位和个位

  只需要满足: m*m*m + n*n*n + q*q*q = 100m + 10n + q 即可.使用三个for循环来分别控制百位,十位和个位

 private static void method2() {
for(int a = 1;a < 10;a++){
for(int b = 0;b < 10;b++){
for(int c = 0;c < 10;c++){
int n = a*a*a + b*b*b + c*c*c;
int m = 100*a + 10*b + c;
if(m == n){
System.out.println(n);
}
}
}
}
}

解法2:

  网上有一种实现方式是:通过做除法和取余的手段分别得到三个位上的数字,使用m*m*m + n*n*n + q*q*q等于此整数的方式来确定.

  num%10 得到个位数

  num/10再%10 得到十位数

  num/100  得到百位数

     private static void method1() {
for(int i = 100;i < 1000;i++){
int a = i % 10; //153%10 3
int b = (i/10)%10; //15%10 5
int c = i/100; //153/100 1
if(i == a*a*a + b*b*b + c*c*c){
System.out.println(i);
}
}
}

【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

分析:

  想象以下,自己平时拿到一个正整数要分解的时候,一般都是从最小的质数,也就是2开始计算.然后对于做了除法之后的部分再次实现之前的操作.大概可以知道,本题需要一个递增的除数以及循环来实现.

  正整数num,除数k = 2

  1.如果num == 2,那么直接结束程序;

  2.如果num > 2,判断num % 2 是否等于0,

      如果等于0的话,说明2是nun的其中一个质因数,输出2,并且使num = num / k;

      如果不等于0的话,说明不能被2整除,k++之后再次执行上面的判断.

      直到循环条件不成立

      不知道循环的次数,使用while()

 public static void method(int num){
int k = 2;
if(num == k){
System.out.print(k + "*");
}
while(num > k ){
if(num % k == 0){
System.out.print(k + "*");
num = num / k;
}
if(num % k != 0){
k++;
}
}
System.out.println(k);
}

求取水仙花数 && 将整数分解成质因数的更多相关文章

  1. JavaScript求取水仙花数

    一.什么是水仙花数 水仙花数也称为超完全数字不变数.自幂数.阿姆斯壮数.阿姆是特朗数. 水仙花数是指一个三位数,每个位数上数字的3次幂之和等于数字它本身. 水仙花数是自幂数的一种,三位的三次自幂数才叫 ...

  2. 百度在线笔试编程测试题(Python):整数分解成素数的积

    编程测试题: 输入一个正整数将其分解成素数的乘积,输入格式连续输入m个数,然后将这m个数分别分解,如 输入: 2 10 20 输出: 2 5 2 2 5 Python code: def primes ...

  3. JAVA变成把一个整数分解成多个质数的积

    /* * TestTengXun.java * Version 1.0.0 * Created on 2017年12月2日 * Copyright ReYo.Cn */ package reyo.sd ...

  4. 【C/C++】任意大于1的整数分解成素数因子乘积的形式

    // #include<stdio.h> #include<math.h> #include<malloc.h> int isprime(long n); void ...

  5. 求n位水仙花数

    求n位水仙花数 A.两个关键 1.n位水仙花数的范围是什么? n位水仙花数的范围是[10n-1,10n) 2.如何判断是否为水仙花数 核心操作: 2-1.如何得到每一位? A.核心思想 对得到的数进行 ...

  6. 整数分解 && 质因数分解

    输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...

  7. java实现求二十一位水仙花数(21位水仙花数)

    一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. 例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水 ...

  8. acm水题3个:1.求最大公约数;2.水仙花数;3.判断完数

    //7.求两个整数的最大公约数#include<stdio.h>//用穷举法求出最大公约数int gcd1(int m,int n){ int min = m > n ? n : m ...

  9. 二、求水仙花数,打印出100-999之间所有的"水仙花数"

    所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方 public c ...

随机推荐

  1. ILSpy .NET反编译工具下载地址

    官方下载: http://ilspy.net/ 中文版下载地址: http://www.fishlee.net/soft/ilspy_chs/#C-310

  2. SVG的基础使用

    SVG的基础使用: <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...

  3. jQuery html text val方法使用

    jQuery html text val方法使用 <%@ page language="java" import="java.util.*" pageEn ...

  4. jQuery获取URL中所带参数的办法

    可以使用正则表达式进行结果的拆分: http://www.cnblogs.com/babycool/p/3169058.html 可以直接进行所需内容的split: http://blog.scien ...

  5. 通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问

    javascript 的navigator属性,不常用,但是用处也不少,主要用处是在做浏览器兼容的问题的时候,现在有的网站已经不兼容IE6,用户假如用IE6浏览网页的话,会提示浏览器升级等信息.或者判 ...

  6. python中关于发邮件的示例

    发送邮件示例代码如下: from WebUtils import ProperitiesLoad from email.mime.text import MIMEText from email.mim ...

  7. POJ2115(扩展欧几里得)

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23700   Accepted: 6550 Descr ...

  8. 编写JQuery插件-4

    封装对象方法的插件 jQuery.fn.extend() 的两种写法 以添加一个点击按钮为例: 方法一: (function ($) { $.fn.mask = function(options){ ...

  9. 源码(04) -- java.util.List<E>

    java.util.List<E> 源码分析(JDK1.7) --------------------------------------------------------------- ...

  10. python3 UnicodeEncodeError: 'gbk' codec can't encode character '\uff70' in position 75267: illegal multibyte sequence

    当你爬出想要的数据了,却发现中文是乱码的时候?请你计算下你内心的阴影面积 ! 菊个栗子: #!/usr/bin/env python3# -*- coding: utf-8 -*-import ioi ...