数字问题Armstrong数

【学习数据库】Armstrong公理系统 Armstrong公理及推理 阅读详情

  在三位正整数中,比如abc,有一些可以满足a^3+b^3+c^3=abc的条件,也就是说各个位数的立方和正好是该数的本身,这些数就叫做Armstrong数。试写一个程序求出所有的3位Armstring数。

最傻逼的写法,太麻烦了。。。。。。=================================================================================================

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int  main(void )
{
	 int number;
	 int pos,ten_pow;
	 int arm_no;
	 int temp,i;
	 float expon;
	 char line[100];
	 
	 printf("please key in number: ");
	 gets(line);
	 number =atoi(line);
	 
	 pos=0;
	 ten_pow= 1;
	 do{
 	     ten_pow*=10;	
 		 pos++;
 	   }while(ten_pow<number);
 	   
 	   if(ten_pow==number)
 	      printf("\n%d is not an Armstrong Number.",number);
       else
          {
          	ten_pow=number;
          	arm_no=0;
          	for(i=pos-1;i>=1;i--)
          	  {
	          	expon=exp(i*log(10.0));
	          	temp=ten_pow/expon;
	          	ten_pow%=(int)(expon+0.5);
	          	arm_no+=exp(pos*log(temp))+0.5;//exp是指数函数,log是对数函数
	          	
	          	
	          }
	          arm_no+=exp(pos*log(ten_pow))+0.5;
	          if(arm_no==number)
	            printf("\n%d is an Armstrong Number.",number);
	          else
	            printf("\n%d is not an Armstrong Number",number);
         }
  	return 0; 
}     
   
          	
下面两种比较易理解且比较简便的写法。。。。。。

#include<stdio.h>
#include<time.h>
int  main(void)
{
	int p,q,r;
	int number;
	int count=0;
	
	printf("\nArmstrong Number Search");
	printf("\n=======================");
	printf("\n\nCount Number");
	printf("\n------   -------");
	
	for(number=100;number<=999;number++)
	{
		p=number/100;
		q=(number%100)/10;
		r=number%10;
		if(p*p*p+q*q*q+r*r*r ==number)
		   printf("\n%3d%9d",++count,number);
	}
	printf("\n\nThere are %d 3-digit Armstrong Number.",count);
return 0;
}

=====================================================================================

#include<stdio.h>
int  main()
{
	int p,q,r;
	int p_cube,q_cube,r_cube;
	int p100,q10;
	int number;
	int cube_sum;
	int count=0;
	
	printf("\nArmstrong Number Search");
	printf("\n==================================");
	printf("\n\nCount Number");
	printf(" \n-------------------------------------");
	
	for(p=1,p100=100;p<=9;p++,p100+=100)
	{
		p_cube=p*p*p;
		for(q=q10=0;q<=9;q++,q10+=10)
		{
			q_cube=q*q*q;
			for(r=0;r<=9;r++)
			{
				r_cube =r*r*r;
				number=p100+q10+r;
				cube_sum=p_cube+q_cube+r_cube;
				if(number==cube_sum)
				  printf("\n%3d%9d",++count,number);
			}
		}
	}
printf("\n\nThere are %d 3-digit Armstrong Numbers",count);	
}




解密C语言中的Armstrong数 本文介绍了用C语言判断Armstrong数的方法,并解决了常见问题。Armstrong数是指等于各位数字立方和的数,如153。文章首先给出基础代码结构,然后针对三个问题提出解决方案:检查scanf返回值避免错误输入,使用自定义整数指数函数替代pow函数,以及处理编译器环境差异。通过改进增强了程序的健壮性和可读性,强调编程是解决问题的艺术。 阅读详情

相关推荐

Armstrong数的程序

Armstrong)数具有如下特征:一个n位数等于其各位数的n次方之和。如 153=13+53+33 1634=14+64+34+44 请找出2、3、4位数中的所有Armstrong数。

阿姆斯壮数(水仙花数)

阿姆斯壮数(armstrongnumber) 是等于其数字的立方数之和的数字,例如:0,1,153,370,371,407等。. 求阿姆斯壮数需要分别计算出3位整数的百位、十位和个位,然后对三个数分别求立方,最后判断是否为阿姆斯壮数。 #include<iostream> #include<iomanip> using namespace std; int main() { int a,b,c; int input; for(input=100;input

优快云_YJX的博客 1658

Jetpack Compose Navigation实战:从基础到高级导航模式

本文全面解析Jetpack Compose Navigation在Android开发中的应用,从基础导航实现到高级模式(如单任务/单顶模式),涵盖参数传递、嵌套导航、深层链接等核心功能。通过实战代码示例展示如何优化导航性能,并与ViewModel、Hilt等架构组件整合,为开发者提供高效的Compose导航解决方案。

pz890123456的博客 372

阿姆斯特朗数

例如,在三位(k=3)的整数中,153可以满足13 + 53 + 33 = 153,这样的数称之为Armstrong数。输入两个整数m、n,以空格分隔,表示指定范围为[m,n],需要找出该范围内的所有Armstrong数。否则:指定范围内所有的ArmStrong数(升序排列,以“,”分隔)Armstrong数:如果一个k位正整数等于其各位数字的k次方之和,则称该数为阿姆斯特朗数。内容:在指定范围[m,n]的所有整数中,试设计一算法找出所有的Armstrong数。输出范例:1634,8208,9474。

zjh2937781075的博客 633

matinal:SAP 采购中形成的差异

如果库存足够会影响到物料。

matinal 當冬夜漸暖 。公众号:matinal 819

通达信股本变迁文件(gbbq)解密方法

近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义。。。问券商的交易软件要呗 到处查资料,得知通达信的权息文件数据齐全,不仅含有除权除息数据,还含有限售解禁、增发、可转债上市等股本变化数据 ——这对于某些对成交量变化敏感的交易模型是非常重要的

不甘碌碌老,结庐铸宝刀 2万+

判断Armstrong数(阿姆斯壮数)

Armstrong 数,就是n(n>=3)位数的各位数的n次方之和等于该数,如: 153=1^3+5^3+3^3, 1634=1^4+6^4+3^4+4^4

入梦风行的博客 422

记一次在JAVA中客户端使用axis调用webservice服务端出现的异常:Unmarshalling Error: For input string: ""

在使axis调用webservice服务端,参照网上给的demo: Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint);//设置服务请求路径 QName qn = new QName(name); call.setOperationName(qn); call.addParamet

kry1201的专栏 8079

C语言实例:判断素数, 判断Armstrong数(阿姆斯壮数),(多种代码,详细思路)

暴力枚举法是最直接的判断素数的方法。对于一个数 n,我们从 2 开始枚举到 n-1,如果存在一个数能够整除 n,则 n 不是素数。否则,n 是素数。

weixin_51624736的博客 1550

宇树G1开发实践--PPT汇报(基础版)

本文介绍了一套基于宇树G1人形机器人的PPT自动演示系统,可实现"一键启动、自动演讲"功能。系统通过多线程同步技术,将音频播放与机器人动作完美结合,支持12种预设社交互动动作。硬件依赖宇树G1机器人、外接音响和网络连接,软件采用Python SDK和ALSA音频工具。核心功能包括音频文件自动排序、外接音响播放控制、机器人动作执行及音画同步。使用时需配置网络接口和音频设备号,运行后自动按顺序播放音频并执行随机动作。系统特别强调了安全注意事项,并提供了常见问题解决方案,适用于展会、汇报等需要

m0_47999117的博客 510

【AirPlay】苹果认证MFI学习

配件认证是一个过程,通过这个过程,可验证其配件符合MFi技术规范,并通过苹果指定的任何认证测试。MFi门户中的产品计划 "认证 "页面将指导你完成特定配件所需的认证步骤,并指出何时完成所有要求。在完成所有MFi认证要求之前,你不得制造、分发或销售任何配件。在开始MFi认证过程之前,你必须测试你的配件,以确保它符合最新的MFi技术规范,通过产品计划 "测试计划 "上的所有适用测试,并与它将声称具有兼容性的每个苹果设备兼容。

天天的博客 2275

每日一小练——Armstrong数

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Armstrong数 内容: 在三位的正整数中,例如abc,有一些可以满足a^3+b^3+c^3=abc的条件,也就是说各个位数的立方和正好是该数本身,这些数称为Armstrong数。是编写一个程序求出所有的三位Armstrong数。 我的解法:上来没多想,

asas5627的专栏 463

9篇3章3节:FAERS数据库公共仪表板搜索功能操作与解析

FAERS(FDA不良事件报告系统)公共仪表板是一个强大的工具,用于查询和分析药物及生物制品的不良事件数据。通过该仪表板,用户可以按药品或不良反应进行搜索,查看报告数量、事件类型及时间分布,从而辅助药物安全性分析和科研研究。本文重点介绍仪表板的搜索功能,包括按产品和按不良反应查询的操作步骤、筛选与多维数据分析方法,以及关键概念的解释,帮助用户科学、理性地使用FAERS数据,提升用药决策的准确性和安全性。

MD Code 1584

阿姆斯壮数

说明 在三位的整数中,例如153可以满足13+ 53+ 33= 153,这样的数称之为Armstrong数,试写出一程式找出所有的三位数Armstrong数。 解法 Armstrong数的寻找,其实就是在问如何将一个数字分解为个位数、十位数、百位数......,这只要使用除法与余数运算就可以了,例如输入 input为abc,则: a = input / 100 b = (input%100) / 10 c = input % 10 代码部分 #include <std...

weixin_53666393的博客 234

SLAM Cartographer(18)后端优化问题求解器

了解经过闭环检测构建了子图与节点之间的约束之后,通过后端优化求解器进行优化求解。核心是基于Ceres库进行SPA(Sparse Pose Adjustment)的优化方法,把后端优化问题描述成为一个最小二乘的问题求解

氢键H-H 5680

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C语言名题精选百则——数字问题

    C语言名题精选百则——数字问题 尊重他人的劳动,支持原创 这篇博文,D.S.Qiu将对《C语言名题精选百则》第二章进行整理推出,本章一共16个问题,不光只是书上的名题,还会依据互联网的资源进行不断补充,加强(由于匆忙,暂时还只是罗列的过程,不过很快就有深度的发掘)。如果你有建议、批评或补充,请你不吝提出(email:gd.s.qiu@gmail.com,或者直接在本文末评论)。你...

qiudesuo的专栏 973

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C语言经典题目 —— 循环(二)

该题思路就是用一个临时变量存储暂时的最大值,然后和下一位进行比较,如果小于下一位的位数,则此临时变量存储下一位的值,直到所有位循环完毕。while(n!=0){n /=10;if(max < n%10) //max

qq_50685510的博客 299

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

c语言名题精选百则技巧篇.pdf,C语言名题精选百则技巧篇

序前言第1章 序曲问题1.1 最长平台(PLATEAU.C)问题1.2 支配值数目(GT_COUNT.C)问题1.3 等值数目(EQ_COUNT.C)问题1.4 两数组最短距离(MINDIST.C)问题1.5 等值首尾和(HEADTAIL.C)第2章 数字问题问题2.1 Armstrong数(ARMS1.C,ARMS2.C)问题2.2 数字谜(TRENTE.C)问题2.3 求质数(PRIME1....

weixin_34434843的博客 495

[C语言程序合集] 持续更新ing

【代码】[C语言程序合集] 持续更新ing。

Mr_wenhan的博客 522

程序设计基础作业2

1.(程序题) 题目编号 :Exp02-Basic04 题目名称:养老金 题目描述:某一国家养老金发放的原则是: (1)男人(假设用数字1表示)超过65岁每周给50元钱,如果超过70岁每周再加20元钱。 (2)女人(假设用数字2表示)超过60岁每周给45元钱,如果超过65岁每周再加25元钱。 编程序,读入一个人的性别和年龄,输出他每周可领养老金数额。如果一个人还没到拿取养老金的年龄,那么就输出一个适合的信息。 输入:输入一行包括2个整数,分别对应性别和年龄,输入保证性别年龄输入都为合理整数.

m0_60754633的博客 4105

Armstrong数

在三位的整数中,例如153可以满足1^3 + 5^3 + 3^3 = 153,这样的数称之为Armstrong数。将所有的Armstrong数按小到大排序,试写出一程序找出指定序号的三位Armstrong数。 输入包括若干行,每行输入一个序号。输入序号为0时,结束输入。 输出相应序号的Armstrong数,如果输入的序号大于Armstrong数个数,输出0 #include<stdio.h&...

urnotmine的博客 1100

Armstrong数问题

今天下了WWDC2014的视频,结果没有中文字幕,我bia

gexiaoqian2820的专栏 1850

C代码实现Armstrong数

【问题描述】Armstrong数具有如下特征:一个n位数等于其个位数的n次方之和。如: 153=13+53+33 1634=14+64+34+44 找出2、3、4、5位的所有Armstrong数。 #include void a(int); int main(void) { int k=0; for(k=2;k<=5;k++) { a(

wuweiweinanjing的专栏 1984
上一篇: 另一种阶乘问题
下一篇: win7 64位真的不能装masm吗?
Hello______world
博客等级 码龄14年 16粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值