C语言中求指定位数的水仙花数
1 水仙花数概念及“常见”水仙花数
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。(百度百科)
水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
常见水仙花数
五位的五角星数共有3个:54748,92727,93084;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477;
九位的九九重阳数共有4个: 146511208,472335975,534494836,912985153;
所以求水仙花数的关键就是把每个位上的数字求出来,然后求出它们的幂次方之和,与求的这个数相比是否相等,相等就是水仙花数,然后输出,判断下一个数,直到判断完最后一个n位的数为止。
#include<stdio.h>
int main() {int m,n,i,a,sum;for(a=100; a<=999; a++) {//所有三位数m=a/100;//求最高位的数字 n=(a-m*100)/10;//求十位数字,先剪掉百位数字再求(352求十位时要减去3*100) i=a-m*100-n*10;//个位 sum=m*m*m+n*n*n+i*i*i;//算出幂次方的和,然后比较 if(sum==a) {printf("%d ",a);}}return 0;
}
#include <stdio.h>
#include <math.h>
int main() {int a,m,n,i,j,sum;printf("输入需要求水仙花的位数:\n");scanf("%d",&a);for(n=pow(10,a-1); n<pow(10,a); n++) {j=0;//初始化j,防止上一次循环的j对本次造成干扰,以下同理int y=0;sum=0;for(i=a-1; i>=0; i--) {//循环三次求每个位数的值m=pow(10,i);//m为10的i次方if(i!=0) {j=(n-y)/m;//y为前面位数的和,比如求四位数的水仙花数时,//如1503,第一个是求1,此时n减去0除以1000;第二位求5,//n减去j乘以1000再除以100} else {j=n-y;//求个位数字时直接减掉前面的和}y+=j*pow(10,i);//y为前几位的和,比如第一次求最大位1时,y为0,到这里就变成j乘以1000了sum+=pow(j,a);//幂次方的和}if(sum==n) {//判断时否为水仙花数printf("%d ",n);}}return 0;
}
制作不易,还请各位帅哥美女点个赞鼓励一下我这个小白!爱你!!!
C语言中求指定位数的水仙花数相关推荐
- python 求3位数的水仙花数_python 求3到8位数的水仙花数Pycharm实现
#-*- coding: utf-8-*- import time import math #获取3位数的水仙花数 start1 = time.time() start = time.time() n ...
- C++求三位数的水仙花数
#include<iostream>using namespace std;int main() {/**个数的3次方+十位的三次方+百位的三次方=这个数的本身*/for (int i = ...
- C++中如何读取一个数的位数_求1000以内的水仙花数
点击上方 蓝字关注我们 大家好,我是阿汤哥. 看知乎上有朋友说还不明白怎么判断水仙花数,今天我们就来看看这个问题.(PS:"求1000以内的水仙花数"这道题阿汤哥记忆犹新.到现在还 ...
- C语言,C#语言求100-999内的水仙花数源程序
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armst ...
- 升序输出三个数_C语言入门经典例题:求100~999的水仙花数
C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制). C++,首要考虑的 ...
- c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...
C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...
- 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
题目 本题是谭浩强<c语言程序设计>第五章第八题 题目:输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 提示:以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨 ...
- java求学生的总分和平均分_c语言中求课程总分、平均分。学生总分及平均分
c语言中求课程总分.平均分.学生总分及平均分 1. #include stdio.h int main(void) { int i, j; int a[6][2]; puts("please ...
- C语言求1000以内的水仙花数
问题:求出0-999之间的所有"水仙花数"并输出. "水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身,如:153=1+5+3?,则153是一个&q ...
最新文章
- 光纤跳线接口的种类及适用范围
- 【学术相关】翻倍!研究生招生规模持续扩张!
- 并发问题是怎样造成的
- (2.1)HarmonyOS鸿蒙Ability创建,XML和Java页面布局UI
- cos大乱斗服务器维护,《COS大乱斗》服务器数据互通公告
- mac qt编译出现问题的解决方法
- TensorFlow tf.keras.layers.Embedding
- paip.SQL特殊字符转义字符处理
- C站一名 普通技术博主 的终端与【开端】,因为热爱,所以习惯,2021~2022
- 一站式WPF--依赖属性(DependencyProperty)一
- 阿里内网最新发布“M8”级Java面试笔记,助力金九银十
- c语言勾股定理已知斜边,C语言 · 勾股数
- 用户画像分析与场景应用
- python主题更改_jupyter notebook更换皮肤主题的实现
- 服务器显示url过长,post跳转页面避免414提示url过长
- 小孩学python有意义吗-小孩Python编程培训有用吗
- 论文笔记《End-to-End Training of Hybrid CNN-CRF Models for Stereo》用于立体评估的端到端训练的混合CNN-CRF模型
- 表示数值的字符串——《剑指offer》
- 独立游戏开发者的一些PR经验
- 经验分享 | 如何搭建企业管理驾驶舱
热门文章
- linux pkg文件,技术|Linux 包管理基础:apt、yum、dnf 和 pkg
- python安全渗透笔记
- 虚拟机中linux磁盘空间不足
- Syntax error on token Invalid Regular Expression Options, no accurate corr
- 【C++】《披着clion的外衣实则在讲cmake》的知识点目录
- Enigma - Structural image processing protocol (结构图像处理协议协议)
- iphone的ibooks如何导入pdf?
- 第五季完美童模 形象大使林子懿现场走秀回顾
- 爱贝云计费服务端接入
- Nginx 配置 SSL 证书 + HTTPS 站点小记