整数倒置和求水仙花数

#include<stdio.h>
#include<stdlib.h>
void numReverse(int num);
void numReverseWithoutArr(int num);
void main(){
	numReverse(123459);
	getchar();
}
void shuiXian(){
	//求水仙花数(一个三位数,其各位数字的立方和等于该数本身)
	int num, f, s, t;
	for (num = 100; num <= 999; num++){
		f = num % 10;
		s = num % 10 / 10;
		t = s / 100;
		if (num == f*f*f + s*s*s + t*t*t){
			printf("%d,%d,%d,%d\n", num, f, s, t);
		}
	}
}
int get10(int n ){ //获取n*10的数
	int res = 1;
	for (int i = 0; i < n; i++){
		res *= 10;
	}
	return res;
}
void numReverse(int num){ //整数倒置, 用str数组暂存数据
	int str[10];
	int i = 0;
	int length; //变化后的数组长度
	int res = 0;
	int j = 0;

	for (;num;i++){
		str[i] = num % 10;
		num /= 10;

	}
	length = i; 

	while (j < length){
		res += str[j] *get10(length-j-1);
		j++;
	}
	printf("%d", res);
}

void numReverseWithoutArr(int num){ //整数倒置, 不用str数组暂存数据
	//123
	int res = 0;
	for (int i = 0;num; i++){
		res = num % 10 *get10(i-1);
		num /= 10;
	}
	printf("%d", res);
}

原文地址:https://www.cnblogs.com/luoxuw/p/11258468.html

时间: 2024-10-11 06:39:52

整数倒置和求水仙花数的相关文章

求水仙花数

/** * 求水仙花数 * @param left * @param right */ static void checkFlowerNumber(int left,int right){ for (int i = left; i <= right; i++) { char[] ch = (i+"").toCharArray(); int sum = 0; int num = 0; for (int j = 0; j < ch.length; j++) { num = In

C语言——求水仙花数

昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业.其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来. 原题 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身. 解题 思路 初始化i=100. ①取i的各位数,百位a,十位b,个位c. ②判断i==a∧3+b∧3+c∧3 是否成立 ③如果成立则输出,否则不输出. ④i=i+1,当i小于1000重复①,否则结束. 关键算法:取任意三位数的各位数 算法一:除减法 ①将数除以100,由整型数据特点,小数点后被

C#求水仙花数!

最近在入门学习.NET编程,慢慢的学习了一些门道,同时也需要将学习的点点滴滴记录下来,今天我就自己想了想,把水仙花数的代码写出来,运行也通过了,就贴在这里,分享给大家,也给自己做一个记录. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication10{    class Pr

python基础----求水仙花数

水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身.如:153 = 1**3 + 5 ** 3 + 3 ** 3 1 def is_narc_num(n): 2 # if n <100 or n > 999: 3 # return False 4 # n = str(n) 5 # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n): 6 # return True 7 # else: 8 # return False

shell求水仙花数

水仙花数(100-999).水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身 c++代码 int i=100; while(i<=999){ int sum=0; int temp=i; int k=0; while(temp!=0){ k=temp%10; sum=sum+k*k*k; temp=temp/10; } if(sum==i){ cout<<sum<<" "; } i++; } shell 代码 # @author su

Python小代码_9_求水仙花数

for i in range(100, 1000): ge = i % 10 shi = i // 10 % 10 bai = i // 100 if ge ** 3 + shi ** 3 + bai ** 3 == i: print(i, end=' ') #输出结果 #153 370 371 407 原文地址:https://www.cnblogs.com/chuangming/p/8467677.html

输入任意数位求水仙花数

dn57mec2op操尾撇友源徒啪泛撬荚<http://weibo.com/p/230927988313307813253120> n4hvgeknea扒遮豆坟谡嘏终馁值滥<http://weibo.com/p/230927988313218315194368> jii9fcbl08瘸迸桨文蹈诖谱判缮盖<http://weibo.com/p/230927988313330550575104> mxhenjgzwi易臣汾即缕晒迪祷嘉张<http://weibo.co

C的一些简单练习题,关于水仙花数,求和,整数高低位输出,制定二进制位替换

#define _CRT_SECURE_NO_WARNINGS //输出一个整数的每一位 //1.低位输出到高位 #include <stdio.h> #include <stdlib.h> int main() { int a; printf("请输出一个数"); scanf("%d",&a); while(a) { printf("%d ",a % 10); a = a / 10; } system("

求100到999之间的水仙花数

所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 for(int a=1;a<=9;a++){ for(int b=0;b<=9;b++){ for(int c=0;c<=9;c++){ if(a*a*a+b*b*b+c*c*c==a*100+b*10+c){ System.out.println(a*100+b*10+c); } } } } 所谓&quo