news 2026/4/23 12:28:49

判断水仙花数并输出,c++

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
判断水仙花数并输出,c++

以下是使用C++实现的相同逻辑代码:

#include<iostream>#include<vector>#include<string>#include<cmath>// 判断一个数是否为水仙花数boolisNarcissistic(intn){std::string numStr=std::to_string(n);intnumDigits=numStr.length();intsum=0;// 遍历每一位数字for(inti=0;i<numDigits;i++){// 将字符数字转换为整数intdigit=numStr[i]-'0';// 计算该位数字的 n 次幂并累加sum+=static_cast<int>(std::pow(digit,numDigits));}// 判断总和是否等于原数returnsum==n;}// 查找指定范围内的水仙花数std::vector<int>findNarcissisticNumbers(intmin,intmax){std::vector<int>results;for(inti=min;i<=max;i++){if(isNarcissistic(i)){results.push_back(i);}}returnresults;}intmain(){// 输出所有3位水仙花数(100-999)std::vector<int>narcissisticNumbers=findNarcissisticNumbers(100,999);// 格式化输出if(!narcissisticNumbers.empty()){std::cout<<"3位水仙花数有:"<<std::endl;for(intnum:narcissisticNumbers){std::cout<<num<<std::endl;}}else{std::cout<<"该范围内没有水仙花数"<<std::endl;}return0;}

以下是使用纯数学运算(不用字符串转换)的替代版本:

#include<iostream>#include<vector>// 判断一个数是否为水仙花数(纯数学方法)boolisNarcissistic(intn){intoriginal=n;intnumDigits=0;inttemp=n;// 计算位数while(temp>0){numDigits++;temp/=10;}intsum=0;temp=original;// 遍历每一位数字while(temp>0){intdigit=temp%10;// 计算digit的numDigits次幂intpower=1;for(inti=0;i<numDigits;i++){power*=digit;}sum+=power;temp/=10;}// 判断总和是否等于原数returnsum==original;}// 查找指定范围内的水仙花数std::vector<int>findNarcissisticNumbers(intmin,intmax){std::vector<int>results;for(inti=min;i<=max;i++){if(isNarcissistic(i)){results.push_back(i);}}returnresults;}intmain(){// 输出所有3位水仙花数(100-999)std::vector<int>narcissisticNumbers=findNarcissisticNumbers(100,999);// 格式化输出if(!narcissisticNumbers.empty()){std::cout<<"3位水仙花数有:"<<std::endl;for(intnum:narcissisticNumbers){std::cout<<num<<std::endl;}}else{std::cout<<"该范围内没有水仙花数"<<std::endl;}return0;}

两个版本的功能相同,都能正确找到153、370、371、407这4个3位水仙花数。第一个版本更接近原Lua代码的逻辑,使用字符串处理;第二个版本使用纯数学运算,在某些情况下性能更好。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:10:38

Fritzing电子设计终极指南:从电路新手到专业创客的完整教程

你是否曾经面对复杂的电路图一头雾水&#xff1f;是否希望有一款工具能像搭乐高一样设计电路&#xff1f;今天&#xff0c;我将带你深入了解Fritzing——这款让电子设计变得直观有趣的开源神器&#xff01;&#x1f3af; 【免费下载链接】fritzing-app Fritzing desktop applic…

作者头像 李华
网站建设 2026/4/16 17:46:31

SDXL VAE FP16修复终极指南:彻底解决显存溢出问题

SDXL VAE FP16修复终极指南&#xff1a;彻底解决显存溢出问题 【免费下载链接】sdxl-vae-fp16-fix 项目地址: https://ai.gitcode.com/hf_mirrors/madebyollin/sdxl-vae-fp16-fix 还在为SDXL推理时的黑色图像困扰&#xff1f;显存占用过高导致无法流畅运行&#xff1f;…

作者头像 李华
网站建设 2026/4/17 23:10:02

Apache Curator终极指南:分布式协调的完整实战教程

Apache Curator终极指南&#xff1a;分布式协调的完整实战教程 【免费下载链接】curator Apache Curator 项目地址: https://gitcode.com/gh_mirrors/curator5/curator 在当今微服务和分布式系统盛行的时代&#xff0c;如何优雅地处理分布式协调问题成为每个开发者必须面…

作者头像 李华
网站建设 2026/4/22 17:59:47

Trae IDE 读取并解析接口文档:trae-swagger-mcp 插件开发分享

trae-swagger-mcp 插件开发分享背景介绍实现效果进阶总结背景 针对 Trae IDE 无法直接解析 JSON 文件、且仅 DouBao 模型支持图片理解的限制&#xff0c;所以开发了本工具 其实上传接口文档的截图&#xff0c;让 AI 解析图片上的内容也十分方便&#xff0c;但是我想要解析完成…

作者头像 李华
网站建设 2026/4/20 22:05:29

超级好用的五款顶尖JSON在线工具

一、为什么JSON工具如此重要&#xff1f; JSON&#xff08;JavaScript Object Notation&#xff09;已成为现代数据交换的通用语言。但你是否曾在面对压缩、无格式化的JSON数据时感到困惑&#xff1f; 专业JSON在线工具能将这种“数据密文”转化为清晰、可读的结构&#xff0…

作者头像 李华