c语言 水仙花数

2023-10-26

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。
本题要求编写程序,计算所有N位水仙花数。

输入格式:
输入在一行中给出一个正整数N(3≤N≤7)。

输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。

输入样例:
3

      
    
输出样例:
153
370
371
407

我的答案:

#include<stdio.h>
int p(int a, int b)//这边要自己定义一个pow函数,pow函数这题不能直接用,否则不能通过一个测试点
{
	int num = 1;
	for (int i = 1; i <= b; i++)
	{
		num = num * a;
	}
	return num;
}
int main()
{
	int n;
	scanf("%d", &n);
	int i,j,trans,sum;
	for (i = p(10, n - 1); i < p(10, n); i++)//在10的n-1次方到10的n次方的范围内找
	{
		j = 1, sum = 0;
		trans = i;
		while (j <= n)//循环求sum
		{
			sum += p(trans % 10, n);//求余数,即最后一位数,计算n次方
			trans /= 10;//上面取完后,消去最后一位数
			j++;
		}
		if (sum == i)//如果求得的sum与i相等,说明这个数就是水仙花数
		{
			printf("%d\n", i);
		}
	}
	return 0;
}

这题用到的算法很精妙
看了很多人的做法
大都是非常复杂的
我参考了许多
并改进了一些
才得到这种算法

while (j <= n)
{
	sum += p(trans % 10, n);
	trans /= 10;
	j++;
}

这里的循环求sum写的很好
值得学习

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言 水仙花数 的相关文章

  • VMware Workstation 不可恢复错误: (vmx)

    errors VMware Workstation 不可恢复错误 vmx Exception 0xc0000006 disk error while paging has occurred 日志文件位于 K vmware centos vm
  • 运用决策表设计测试用例

    逻辑关系 逻辑关系 logic relationship 即 依赖关系 在项目管理中 指表示两个活动 前导活动和后续活动 中一个活动的变更将会影响到另一个活动的关系 强制依赖关系 所做工作中固有的依赖关系 可自由处理的依赖关系 由项目队伍确
  • MyBatis:尝试解决Spring Boot集成MyBatis 懒加载时序列化失败的三种方法以及原因FAIL_ON_EMPTY_BEANS

    MyBatis 解决No serializer found for class org apache ibatis executor loader javassist JavassistProxyFactory EnhancedResult
  • python3 Flask 简单入门(MVC模板类)

    跟上一篇文章一样的内容 Flask默认支持的模板是jinja2 jinja2简单实用 1 在Jinja2模板中 我们用 name 表示一个需要替换的变量 很多时候 还需要循环 条件判断等指令语句 在Jinja2中 用 表示指令 2 循环输出
  • win10 装黑苹果 完整教程

    一 材料准备 1 虚拟机软件VMware 2 适用于Windows版本的VMware解锁安装Mac OS的补丁 3 Mac OS X 10 10的黑苹果镜像 以上材料我都为你贴心地准备齐了 在我的云盘获取 链接 https pan baid
  • VUE3+Element-Plus form表单封装

    VUE3 Element Plus form表单封装 新建form组件页面 创建index vue 新建form组件页面 在components中创建新组件 将需要的form表单中常用的UI组件引入 vue3创建组件和vue2中多少有点区别
  • 大学《数据库原理与技术》复习题(二)

    数据库复习题 一 选择题 1 B 是按照一定的数据模型组织的 长期存储在计算机内 可为多个用户共享的数据的集合 A 数据库系统 B 数据库 C 关系数据库 D 数据库管理系统 2 数据库系统的基础是 A 数据结构 B 数据库管理系统 C 操
  • LVGL V8

    本文适用于LVGL V8版本 LVGL simulator vs2019 官方工程 lv sim visual studio 使用注意事项 1 将官方工程从github上下载下来 最好使用git 将整个工程clone下来 因为工程内部有依赖
  • c++坑人

    大家好 我是LCR 今天为大家带来的是c 中的弹窗病毒 当然你也可以把它理解为坑人代码 如果喜欢这篇文章 可以给我点一个赞吗 代码解释 system是c语言库里面自带的一个函数 start的原本意思为 跳转 后面本应接网址 当你的后面为空时
  • 多功能翻译工具:全球翻译、润色和摘要生成

    openai translator openai translator Stars 18 1k License AGPL 3 0 这个项目是一个多功能翻译工具 由 OpenAI 提供支持 可以进行全球单词翻译 单词润色和摘要生成等操作 提供
  • python项目导出依赖包requirements.txt文件

    只导出当前项目依赖包 注意 使用 pip freeze gt requirements txt 会导出大量无用的文件 包括很多个包信息 其实这里是把你当前 python 环境的所有包的相关信息导出来了 如果我们只需导出当前项目所需的依赖包
  • 如何创建线程,多线程下又如何上锁保护公共资源?

    目录 一 创建线程几种方法 1 继承thread类 重写run方法 2 实现runnable接口 重写run方法 3 使用匿名类 或 lamda表达式 让代码更简洁 4 Callable 接口 5 使用线程池创建线程 二 多线程下 需要上锁
  • canvas画布合成

  • windows自动颁发证书

    首先去配置组策略 计算机配置 windows设置 安全设置 公钥策略 证书注册策略和证书服务客户端 不需要勾选禁用用户配置注册策略服务器 用户配置也这样配置 最后进入证书管理器 找到证书模板 右键证书管理 看见一个计算机 去右键 安全这里允
  • 虚拟内存笔记

    虚拟内存 为什么要有虚拟内存 有些进程实际需要的内存很大 超过物理内存的容量 比如一个几十G的游戏 要运行在内存为8G的计算机上 由于多道程序设计 主存是同时可以存放多个进程的逻辑及数据的 这就使得每个进程可用的物理内存更加稀缺 不可能无限
  • [1194]GitLab在web端合并分支

    文章目录 gitlab 在 web 端合并分支 1 1 发起合并操作 1 2 选择源分支和目标分支 1 3 输入合并备注 1 4 合并检查 1 5 完成合并 1 6 查看提交记录 修改的文件及内容 gitlab 在 web 端合并分支 1
  • 概率密度估计(Probability Density Estimation)--Part3:混合模型

    目录 引入 求解方法 MLE法 Clustering E M EM EM算法 大概的说明 较为详细的说明 高斯混合中的
  • 线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

    Gram Schmidt正交化 在前面的几个最小二乘的文章中 实际上已经看到Gram Schmidt正交化的影子 在我个人看来 Gram Schmidt正交化更像是一种最小二乘的简化算法 下面 我会接着上一篇文章中的最后一个例子讲 慢慢引出
  • 【HDLBits 刷题 10】Circuits(6)Finite State Manchines 10-17

    目录 写在前面 Finite State Manchines Lemmings1 Lemmings2 Lemmings3 Lemmings4 Fsm onehot Fsm ps2 Fsm ps2data Fsm serial 写在前面 HD
  • LeetCode922. 按奇偶排序数组 II

    LeetCode922 按奇偶排序数组 II 给定一个非负整数数组 A A 中一半整数是奇数 一半整数是偶数 对数组进行排序 以便当 A i 为奇数时 i 也是奇数 当 A i 为偶数时 i 也是偶数 你可以返回任何满足上述条件的数组作为答

随机推荐

  • protobuf 中数据编码规则

    背景 protobuf 是一种跨平台的序列化结构数据的方法 可用于网络数据传输及存储 protobuf 在生成的 C 代码中为 proto 文件中的每个 message 生成了对应的 C 类 并提供了数据成员的读写方法 本文对 protob
  • 以太网知识-GMII / RGMII接口

    今天和海翎光电的小编一起分析MII RMII SMII 以及GMII RGMII SGMII接口的信号定义 及相关知识 同时小编也对RJ 45接口进行了总结 分析了在10 100模式下和1000M模式下的连接方法 GMII 接口分析 GMI
  • 避免跨域的CDN部署方案

    我们的一个项目采用动静分离的部署方式 服务接口在自己的服务器上 静态资源保存在OSS 通过CDN访问 不过这样有时会有跨域问题 本文总结解决的办法 原来的做法 原本的做法 服务接口部署在自己的服务器上 通过域名api xxx com访问 不
  • 添加序号_Excel——合并单元格添加序号

    点击上方关注我们获取更多 在工作中 为了数据便于查看 经常需要将内容相同的单元格进行合并 在进行了批量合并单元格后 如何给合并单元格添加序号成为又一难点 今天就来和大家分享一下在EXCEL中如何给合并单元格添加序号 以下表数据 城市销售数据
  • UVA-806 空间结构 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 一道遍历四叉树的题目 在遍历的同时还要记住路径 做一些额外的操作 题目本身并不难 但是格式要求较多 比如输出路径时12个就换行 不
  • 恶意代码检测理论(静态与动态分析基础)

    什么是恶意代码 恶意代码 malicious code 又称为恶意软件 malicious software Malware 是能够在计算机系统中进行非授权操作的代码 恶意代码类型 1 蠕虫或计算机病毒 可以自我复制和感染其他计算机的恶意代
  • Linux逆向 - Mirai-上

    Mirai Mirai 变种 资料 源码 Mirai源码 xd0ol1 Mirai 源码分析 https paper seebug org 142 绿盟 MIRAI源码分析报告 http blog nsfocus net mirai sou
  • C#中结构体排序方法(Array.sort() + ICompare)

    感觉C 比C 麻烦许多 资料也少 找了半天竟然没有找到一个能用的结构体排序 这是待排序的结构体 public struct la public int id public int sb 首先 C 需要调用一个空间 类似头文件 using S
  • 自学移动端(APP)自动化测试

    国庆已经过去了 新的一周已经开始了 各地疫情又开始出现复发了 我们能做的就是做好个人防护 去哪报备 到哪扫码亮码 主动做核酸 随时做好家里存储至少一周的食物 拒绝过度防疫 拒绝过度恐慌 拒绝过度焦虑 有工作的最起码还有钱能到手 没有工作的可
  • 万字长文深度剖析AIGC技术!(网络架构&自监督)

    作者 派派星 编辑 CVHub 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 前景回顾 Welcome to back 在 万字长文带你解读AIGC入门篇 一文中 我们详
  • 计算机网络生活应用,浅谈计算机网络在生活中的应用

    摘要 进入21世纪科技高速发展 特别是计算机网络的进一步发展 计算机的应用更为普遍 计算机网络的应用已经渗透到社会的各个领域 正在日益改变着传统的工作 学习和生活的方式 推动着社会的科技发展 资源的共享 通信 这两种计算机网络最基本的功能在
  • elementUI的表格多选功能之规定禁止选择

    elementUI的el table表格多选功能之禁用多选 在进行表格的多选的时候我们会碰到那种 只允许部分内容可以被选择 不符合的要禁用多选框 这个时候就要用到elementUI el table的selectable 所以我们可以这样写
  • mysql导入sql文件、数据库时报错ERROR: ASCII '\0' appeared in the statement

    window环境下mysql导入sql文件时报错 ERROR ASCII 0 appeared in the statement 错误原因 文件编码不正确 解决办法 下载UltraEdia对文件进行转码 如果是使用powershell导出的
  • 计算机网络笔记整理2——物理层

    点此链接可跳转到 计算机网络笔记整理 目录索引页 参考书籍 计算机网络 第八版 谢希仁编著 文章目录 点此链接可跳转到 计算机网络笔记整理 目录索引页 物理层的基本概念 物理层接口的基本特性 数据通信的基础知识 信道的极限容量 信道能够通过
  • AODV协议概述

    AODV是由Nokia研究中心的Charles E Perkins和加利福尼亚大学Santa Barbara的Elizabeth M Belding Roryer以及Cincinnati大学Samir R Das等共同开发 已经被 IETF
  • JDBC总结

    JDBC 规范 Java DataBase Connectivity 标题 JDK 提供 Java链接数据库的规范 采用JDBC访问数据库的基本步骤 A 载入JDBC驱动程序 B 定义连接URL C 建立连接 D 创建Statement对象
  • 光纤工程的接续、施工与测试技术规范及要点

    1 光纤接续 1 光纤接续 光纤接续应遵循的原则是 芯数相等时 要同束管内的对应色光纤对接 芯数不同时 按顺序先接芯数大的 再接芯数小的 2 光纤接续的方法有 熔接 活动连接 机械连接三种 在工程中大都采用熔接法 采用这种熔接方法的接点损耗
  • 【Unity研究】进程、线程、对象池的关系

    目录 简要概括 名词解释 实例 进程 线程 对象池 实际使用 对象池实际操作 含代码 建立主线程以外的线程方法 在主线程中运行的生命周期 在副线程中运行的生命周期 简要概括 正在运行的Unity游戏就可以看做一个进程的实例 线程是进程内的执
  • 一种信息系统免疫安全防护架构

    摘 要 随着网络的快速发展 各类社会活动的信息化日益普及 但是网络安全威胁也更加复杂多变 使得信息系统处于安全威胁风险极高的环境中 严重威胁信息的共享和获取 针对核心信息系统的安全防护 提出了一种信息系统免疫安全防护架构 针对信息系统高可用
  • c语言 水仙花数

    水仙花数是指一个N位正整数 N 3 它的每个位上的数字的N次幂之和等于它本身 本题要求编写程序 计算所有N位水仙花数 输入格式 输入在一行中给出一个正整数N 3 N 7 输出格式 按递增顺序输出所有N位水仙花数 每个数字占一行 输入样例 3