求两个正整数之间的水仙花数

求两个正整数之间的水仙花数
求两个正整数之间的水仙花数

/*第5次作业第五章函数程序设计---5.7 编程题《求两个正整数之间的水仙花数》

3.

【问题描述】

输入2 个正整数m 和n(1≤m,n≤1000),输出m~n之间的所有水仙花数?

水仙花数是指各位数字的立方和等于其自身的数?要求定义并调用函数is(number)判断number的各位数字之立方和是否等于其自身?

【输入形式】

输入2个正整数m 和n(1≤m,n≤1000)

【输入输出样例1】(下划线部分表示输入)

Input m: 100

Input n: 400

153

370

371

【样例说明】

输入提示符后要加一个空格。例如“Input m: ”,其中“:”后要加一个且只能一个空格。英文字母区分大小写。必须严格按样例输入输出。*/

#include

int is(int n);

int main(void)

{

int m,n,i;

printf("Input m: ");

scanf("%d",&m);

printf("Input n: ");

scanf("%d",&n);

//printf("%d",is(100));

for(i=m;i<=n;i++)

{

if(is(i)==1)

{

printf("%d",i);

printf("\n");

}

}

return 0;

}

int is(int n)

{

int a,b,c,p;

a=n/100;

b=(n/10)%10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)

p=1;

else

p=0;

return p;

}

高级程序设计(实习基础类试题)

《高级程序设计》实习 基础类编程题目 (顺序结构类题目) 1、(数字处理)输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积。 2、要将"Program"译成密码,译码规律是:用原来字母后面的第5个字母代替原来的字母.例如,字母"A"后面第5个字母是"F"."F"代替"A"。 (选择结构类题目) 3、编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1op data2的值,其中op可为+,-,*,/(用switch语句实现)。 (题目可扩充到四则混合运算,可以将“+、-、*、\”以及“()”考虑进去) 4、编一程序,对于给定的一个百分制成绩,输出相应的五分值成绩。设90分以上为'A',80-89分为'B',70-79分为'C',60-69分为'D',60分以下为'E'(用switch语句实现)。 (循环结构类题目) 5、求Sn=a+aa+aaa+------+aaaaaaa(n个a),其中a和n都从键盘中输入,如从键盘中输入2,5,则计算S5=2+22+222+2222+22222。 (要求使用三种循环语句分别完成) 6、韩信点兵。 韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。编程求韩信至少有多少兵? 7、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 8、(穷举算法)古希腊人认为因子的和等于它本身的数是一个完全数(自身因子除外),例如28的因子是1、2、4、7、14,且1+2+4+7+14=28,则28是一个完全数,编写一个程序求2-1000内的所有完全数。 9、(穷举算法)(钱币问题)在日常生活中常常需要用一些较小面额的钱币去组合出一定的币值。现有面值为1元、2元和5元的钞票(假设每种钞票的数量都足够多),从这些钞票中取出30张使其总面值为100元,问有多少种取法?每种取法的各种面值的钞票各为多少张? (数组类题目) 10、已知一组字符串a[10]=”abCDefGHi”,将其中的小写字母改写成大写字母。 11、已知有20个两位正整数的数组a[20]={10,11,12,13,14,19,18,17,16,15,20,21,22,23,24,29,28,27,26,25},编一程,将数组a中满足:个位数加十位数是偶数的元素赋给数组b[],并对数组b[]从小到大排序打印。例:11,13。 12、(排序)已知有20个两位正整数的数组a[20]={10,11,12,13,14,19,18,17,16,15,20,21,22,23,24,29,28,27,26,25},从键盘输入上述数组a中的某个数,编写一程序,将该数从数组a中删除掉,将删除后该数的数组a打印。 (编程思路:需要考虑键盘输入的数在数组中的位置,可能的位置是输入的数值为10,刚好是数组第一个元素;可能是数组a中间的某个数值;可能是数组a最好一个数值25,整个处理都不相同)

C 语言 求任意两个数的最大值 分支

1. 输入一个字符,若是字母则输出“YES !”(JP48-6) main () { char ch; clrscr(); printf("enter char ch=?"); scanf("%c",&ch); if (ch>='A' && ch<='Z' || ch>='a' && ch<='z') printf("yes !"); } 2.求任意两个数的最大值。(分支程序) (例1-3-151) main() { int a,b,c; clrscr(); printf("a,b=?"); scanf("%d,%d",&a,&b); /* 从键盘上临时输入a,b 的值 */ if (a>b) c=a; /* 调用求最大值的函数 max */ else c=b; printf("max=%d\n",c); /* 输出 a 和 b 的最大值 c */ } 3. 调用求最大值的函数,求任意两个数的最大值。(例1-3-152) main() { int a,b,c; clrscr(); printf("a,b=?"); scanf("%d,%d",&a,&b); /* 从键盘上临时输入a,b 的值 */ c=max(a,b); /* 调用求最大值的函数 max */ printf("max=%d\n",c); /* 输出 a 和 b 的最大值 c */ } int max(x,y) /* 定义函数 max 为整型 */ int x,y; /* 定义形式参数 x,y为整型 */ { int c; if (x>y) c=x; /* 求 x,y 的最大值 */ else c=y; return (c); } 4.求三个数中的最大数(4-3-1325) main() { float a,b,c; clrscr(); printf(“enter float a,b,c=?”); scanf(“%f,%f,%f”,&a,&b,&c); if (a>b) if (a>c) printf(“a=%f is the largest number !”,a); else printf(“c=%f is the largest number !”,c); /*a>b的情况下*/ else if (b>c) printf(“b=%f is the largest number !”,b); /*b>a的情况下*/ else printf(“c=%f is the largest number !”,c); } 5.三个数从小到大排序运行该程序:Ctrl F9

C语言特殊数据的输出

特殊数据的输出 【涉及知识点】 1.函数的参数; 2.多分支条件语句; 3.循环; 4.数据的输入输出; 5.随机函数的使用。 【题目介绍】 请编写程序,由系统随机产生一个正整数n(1

汇编程序:求两个正整数的最大公约数

CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM data segment M dw 8 N DW 16 result dw 0 y dw 10 output1 dw 0 K dw 0 s1 db"Please input a number as 'M': $" s2 db"Please input a number as 'N': $" s3 db"The result is : $" data ends stack segment s dw 1000 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start: push ds mov ax,0 push ax mov ax,data mov ds,ax lea dx,s1 mov ah,09h int 21h call intput mov ax,K

mov M,ax mov K,0 crlf lea dx,s2 mov ah,09h int 21h call intput mov ax,K mov N,ax mov K,0 crlf call ouji mov ax,result mov output1,ax lea dx,s3 mov ah,09h int 21h call output mov output1,0 ret ouji proc near xor dx,dx mov ax,m mov bx,n T: cmp ax,bx jge U xchg ax,bx U: mov cx,ax div bx cmp dx,0 jnz G mov result,bx

特殊数据的输出(1)资料

《C程序设计》 课程设计报告(20 14 —2015 学年第2 学期) 题目:特殊数据的输出 学院:电气与电子信息学院 班级:1309 学号:1304080016 姓名:梁骞 指导教师:罗涛华 时间:起 4.27 止4.30

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:食品科学与工程学院、机械工程学院、电气与电子工程学院、土建学院、动物科学与营养工程学院、化学与环境工程学院、工商管理类、国际经济与贸易、旅游管理、金融学、行政管理、汉语言文学、英语、护理学、康复治疗专业、生物科学类、制药工程、制药工程(生物制药)、药物制剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、程序设计课程 学分:1 总学时:1周 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能:1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同时填写并完 成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参 与的将作不及格处理。 五、考核方式 指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神

水仙花数算法研究及其C语言代码实现

/** 水仙花数算法研究及其C语言代码实现 'BnBn-1...B1'=X(N)= sum{ digit = 0..9, count_digit[digit] * power(digit, N)} @author 东海陈光剑剑魔书仙读书录 水仙花数的相关数学证明及其算法&源程序实现 The Computer Solution Of Narcissistic Number & Mathematical Proofs 东海陈光剑剑魔书仙读书录 2013.4.28 @ iSoftStone [参数说明] N(n):n位十进制正整数N(n) MAX(n):n位十进制正整数最大值10 n -1 MIN(n):n位十进制正整数最大值10 n-1 Nar(n):n位十进制正整数中的水仙花数 b n-1,b n-2,...,b 1,b 0:N(n)各位十进制数位上的数字,显然b n-1>0. k 0 ,k 1 ,...,k 9 : N(n)中数字0,1,2,...,9 分别总计出现的次数. 显然k i >=0 & sum(k i )=n. k 0 *0^n + k 1 *1^n + ...+ k 9 * 9^n =N(n). (i=0,1,2 (9) 穷举所有十元组(k 0 ,k 1 ,...,k 9 ); 对满足条件[*]的一个特定的十元组(k 0 ,k 1 ,...,k 9 )*,即可确定唯一的一个Nar(n). [定理] 0. MIN(n)60,Nar(n)不存在. 2. 对满足条件[*]的一个特定的十元组(k 0 ,k 1 ,...,k 9 )*,确定唯一的一个Nar(n). 3. 不定方程k 0 + k 1 +...+ k 9 = n 非负整数解十元组Sj的个数为C{10+n-1,10-1}=C{9+n,9}= (9+n)!/[(9!)(n!)]组. [算法描述] Step1.求解不定方程k 0 + k 1 +...+ k 9 = n 所有的非负整数解S集. Step2.对每个解Sj计算 k 0 *0^n + k 1 *1^n + ...+ k 9 * 9^n =T(n)

水仙花数和完全数

E-mail文化传播网https://www.360docs.net/doc/441691613.html,

水仙花数

水仙花数外文名narcissistic number。 指的是:在自然数中,如果一个三位数等于其自身各个数字的立方和,那么这个三位数就称为“水仙花数”。 后来,水仙花数又发展称为阿姆斯特朗数,是指一个 n 位数( n≥3 ),它的每 个位上的数字的 n 次幂之和等于它本身。所以就有四位水仙花数、五位水仙花数、六位水仙花数。。。。。。等等。实际上这只是自幂数的一种数。严格来说三位数的3次幂数才是水仙花数。 (例如:13+ 53+ 33 = 153)

在数论中,水仙花数,也被称为 超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong nmber),用来 描述一个N位非负整数,其各个 位数字的N次方和等于该数本身。若将条件放宽,一个N位数,其 各个数之M次方和等于该数,(M 和N不一定相等)这样的数称为 完全数字不变量(perfect digital invariant), 水仙花数一定是完全数字不变量,但完全数字不变量不一定是水仙花数。

阿姆斯特朗数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。 其他位数的自幂数名字 一位自幂数:独身数 两位自幂数:没有 三位自幂数:水仙花数 四位自幂数:四叶玫瑰数 五位自幂数:五角星数 六位自幂数:六合数 七位自幂数:北斗七星数 八位自幂数:八仙数 九位自幂数:九九重阳数 十位自幂数:十全十美数 常见的阿姆斯特朗数。 三位的水仙花数共有4个:153,370,371,407; 四位的水仙花数共有3个:1634,8208,9474; 五位的水仙花数共有3个:54748,92727,93084; 六位的水仙花数只有1个:548834; 七位的水仙花数共有4个:1741725,4210818,9800817,9926315;八位的水仙花数共有3个:24678050,24678051

二年级数学下生活中的大数

二年级数学下生活中的大数 一、口算。1400-900=600+800=300+3000=90+400=240- 70=5600-500=6000-4000=700-300=460-400=80+50= 二、填空我能行。 1、10个一是(),10个是(),10个一百是(),10个一千是()。 2、一个数,从右边起第一位是()位,第二位是()位,第三位是()位,第四位是()位,第五位是()位。读数时,中间有一个0或两个0,只读()个0,末尾的0()。(填大写数字) 3、读数时,先从()读起,千位上是几,就读(),百位上是几,就读(),位上是几,就读(),个位上是几,就读()。 4、四位数肯定比三位数(),三位数肯定比两位数()。 5、在数位表中,从右起第二位是()位,最低位是()位。 三、我当法官辨真假(对的打“√”,错的打“” ) 1、最大的四位数是9999,最小的四位数是1001。 () 2、860里面有6个,8个百。 ()

3、一个数末尾不管有几个零,都只读一个零。 () 4、最小的四位数和最大的三位数只相差1。 () 5、一个数的最高位是百位,它是一个四位数。 () 四、比较大小 1、在()里填上“>”“<”或“=”88()880543()4531110()10106083()68032998()1002376()67 32、先分类,后排序。(按顺序填写) 85、14 31、8 10、9 98、 56、2597。两位数()();三位数()();四位数()();()>()>()>()>()>()。 3、把下面的数按从大到小的顺序排列起来,58 97、59 97、61 23、6002。()()()()。

水仙花数

1.“水仙花数”是指这样的数,其各位数字的立方和等于该数本身.编写程序求100至999的范围内有多少个水仙花数 #include main() { int dig,k,m,s,count; count=0; for(k=100;k<=999;k++) { dig=0; s=0; dig=k/100; s=s+dig*dig*dig; m=k%100; while(m!=0) { dig=m%10; s=s+dig*dig*dig; dig=m/10; s=s+dig*dig*dig; m=0;

} if(s==k) { count++; } } printf("%d\n",count); } 2.(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求x>y>z);则(x,y,z)称为方程的一个解.试求方程的整数解(包括负整数解)的个数. #include main() { int x,y,z,s,n=0; for(x=-55;x<=55;x++) for(y=-55;y

for(z=-55;z main() { int dig,k,m,s,count; count=0; for(k=100;k<=400;k++) { dig=0; s=0; dig=k/100;

C语言输入两个正整数m和n求其最大公约数和最小公倍数

输入两个正整数m和n, 求其最大公约数和最小公倍数. <1> 用辗转相除法求最大公约数算法描述: m对n求余为a, 若a 不等于0 则m <- n, n <- a, 继续求余否则n 为最大公约数<2> 最小公倍数= 两个数的积/ 最大公约数 #include int main() { int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/ printf("Enter two integer:\n"); scanf("%d %d", &m, &n); if (m > 0 && n >0) { m_cup = m; n_cup = n; res = m_cup % n_cup; while (res != 0) { m_cup = n_cup; n_cup = res; res = m_cup % n_cup; } printf("Greatest common divisor: %d\n", n_cup); printf("Lease common multiple : %d\n", m * n / n_cup);

} else printf("Error!\n"); return 0; } ★关于辗转相除法, 搜了一下, 在我国古代的《九章算术》中就有记载,现摘录如下: 约分术曰:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。” 其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。辗转相除法求最大公约数,是一种比较好的方法,比较快。对于52317和75569两个数,你能迅速地求出它们的最大公约数吗?一般来说你会找一找公共的使因子,这题可麻烦了,不好找,质因子大。现在教你用辗转相除法来求最大公约数。先用较大的75569除以52317,得商1,余数23252,再以52317除以23252,得商2,余数是5813,再用23252做被除数,5813做除数,正好除尽得商数4。这样5813就是75569和52317的最大公约数。你要是用分解使因数的办法,肯定找不到。那么,这辗转相除法为什么能得到最大公约数呢?下面我就给大伙谈谈。比如说有要求a、b两个整数的最大公约数,a>b,那么我们先用a除以b,得到商8,余数r1:a÷b=q1…r1我们当然也可以把上面这个式子改写成乘法式:a=bq1+r1------l)如果r1=0,那么b就是a、b

关于找出N位数的水仙花数的程序

#include #include //此程序可以找出任意输入的N位数中所包含的全部水仙花数 int xz(int b){int i=2,di=10; while(i1){jieguo=jieguo*m;mi=mi-1;} return jieguo;}//此函数用于求一个数的mi次方其中m为被操作数 int kf(int k,int z){return k/z;}//利用取整求出一个数的最高次幂对应的值 int main(){int ji=0; int n;//确定输入的n的值 int shu;//此数用于存放要寻找最高次幂的值的数 int di;//此数用于确定变化的用于取整的底 int wei;//此数用于存放所求数的某一位的值 int zuixiao;//此数是确定确定次幂的数的最小值 int zuida;//此数是确定确定次幂的数的最大值 int cifanghe=0;//此数用于存放次方的和 cout<<"请输入将要寻找水仙花数的次幂数n的值n="; cin>>n; shu=xz(n); di=xz(n); zuixiao=xz(n); zuida=10*xz(n)-1; while(shu>=zuixiao&&shu<=zuida) {int quedingshu;//此数用于存放某一确定的数用于操作 int dibian;//此数用于替代对于某一具体的数的底 int cifanghe1; cifanghe1=cifanghe; dibian=di; quedingshu=shu; while(quedingshu>0){ wei=kf(quedingshu,dibian); cifanghe1=cifanghe1+cifang(wei,n); quedingshu=quedingshu-wei*dibian; dibian=dibian/10;} if(cifanghe1==shu){ji++;cout<

比较两个数大小的方法

1 比较两个数大小的方法(求差法与求商法) 一、求差法比较两个数的大小:(体现分类思想;逆向思维) 1、当a -b >0时,那么a >b ;反过来也成立。 2、当a -b =0时,那么a =b ;反过来也成立。 3、当a -b <0时,那么a <b ;反过来也成立。 举例:比较(x-5)2 与(x-4)×(x-6)的大小 比较m 2 + n 2 +3与2(m + n-2)的大小 二、求商法比较两个正数的大小:(体现分类思想,逆向思维) 1、对于两个正数a 与b ,如果b a >1,那么a > b ;反过来也成立。 2、对于两个正数a 与b ,如果b a =1,那么a = b ;反过来也成立。 3、对于两个正数a 与b ,如果b a <1,那么a < b ;反过来也成立。 举例:比较的大小-与232 比较78-与67-的大小 比较两个数大小的方法(求差法与求商法) 一、求差法比较两个数的大小:(体现分类思想;逆向思维) 1、当a -b >0时,那么a >b ;反过来也成立。 2、当a -b =0时,那么a =b ;反过来也成立。 3、当a -b <0时,那么a <b ;反过来也成立。 举例:比较(x-5)2 与(x-4)×(x-6)的大小 比较m 2 + n 2 +3与2(m + n-2)的大小 二、求商法比较两个正数的大小:(体现分类思想,逆向思维) 1、对于两个正数a 与b ,如果b a >1,那么a > b ;反过来也成立。 2、对于两个正数a 与b ,如果b a =1,那么a = b ;反过来也成立。 3、对于两个正数a 与b ,如果b a <1,那么a < b ;反过来也成立。 举例:比较 的大小-与232 比较78-与67-的大小

用Matlab求水仙花数,完美数,回文数和亲合数

题目:对深圳市人口及医疗的预测 编号: 10055 队长李荣 姓名: 李荣(09041117) 王遂(09041124) 李春晓(09055025)

1.水仙花数: (1)题目 若一个三位数自然数的各位数的各位数字的立方和等于该数本身,则称该数为水仙花数,例如,153=1^3+5^3+3^3,所以153为水仙花数,编程计算所有水仙花数. (2)分析问题: 本题特点在于一个数的各个位数立方和与其本身的关系很明确且很简单,可以用if语句或find语句来完成.如果用if语句,则又有两种选择:1.命一个三位数,再表示其各个位数的数字;2.命各个位数的数字,再表示该三位数.如果用find语句,其思路与if语句类似. (3)问题求解: 方法一: for x=100:1:999 a=fix(x/100); b=fix(x/10-10*a); c=x-100*a-10*b; if x==a^3+b^3+c^3 x end end 方法二: for x=1:1:9 for y=0:1:9 for z=0:1:9 if x^3+y^3+z^3==100*x+10*y+z m=100*x+10*y+z end end end end 方法三: shui=100:999; i=floor(shui/100); j=floor(mod(shui,100)/10); k=floor(mod(shui,10)); p=i.^3+j.^3+k.^3;

shui(find(p==shui)) (4)结论及分析: 通过实验,结果正确,证明分析无误. (5)结果: 153 370 371 407 2.回文数 (1)题目: 对于一个自然数,若将各位数字倒序排出,加到原数字上,反复多次,若能得到一个从左到右读和从有到左读完全一样的数,则称该自然数能产生回文数.通过编程计算,你能找出多少个能产生回文数的数,又能找到多少不能产生回文数的数,二者的最小数是多少? (2)分析问题: 本题关键在于如何将一个数的各个数位的数字倒序排出,并加到原数上.又

输入两个正整数m和n,求最小公倍数,与最大公约数

第一周作业 1输入两个正整数m和n, 求其最大公约数和最小公倍数. <1> 用辗转相除法求最大公约数算法描述: m对n求余为a, 若a不等于0 则m <- n, n <- a, 继续求余否则n 为最大公约数<2> 最小公倍数= 两个数的积/ 最大公约数 #include int main() { int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/ printf("Enter two integer:\n"); scanf("%d %d", &m, &n); if (m > 0 && n >0) { m_cup = m; n_cup = n; res = m_cup % n_cup; while (res != 0) { m_cup = n_cup; n_cup = res; res = m_cup % n_cup; } 2、分别用三种循环语句(while语句、do-while语句、for语句),实现求

1~100的累加和。 第2周的题目:(要求用数组做) printf("Greatest common divisor: %d\n", n_cup); printf("Lease common multiple : %d\n", m * n / n_cup); } else printf("Error!\n"); return 0; } 2int sum = 0; int i=0; while(i<100) { sum += (i+1); i++; } printf("%d" , sum); i=0; do { sum += (i+1); i++; }while(i <=100) printf("%d" , sum); for(i = 1 ; i <=100 ; i++) { sum += i; } printf("%d" , sum); 第二周作业 1用冒泡法对输入的10个整数排序。 #include #include void print(int *a,int n); void paixu(int *a,int n); void main()

C语言程序设计100例之(4):水仙花数

C语言程序设计100例之(4):水仙花数 例4 水仙花数 题目描述 一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数。 输入格式 没有输入 输出格式 若干行,每行1个数字。 输入样例 无 输出样例 153 * * * ... * * * (输出被和谐了) (1)编程思路1。 对三位数n(n为100~999之间的整数)进行穷举。对每个枚举的n,分解出其百位a (a=n/100)、十位b(b=n/10%10)和个位c(c=n%10),若满足a*a*a+b*b*b+c*c*c== n,则n是水仙花数。 (2)源程序1。 #include int main() { int n, a, b, c; //n、a、b和c分别为三位数自身及其百位、十位和个位 for(n=100 ;n<=999;n++) { a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c== n) printf("%d\n",n); }

return 0; } (3)编程思路2。 用一个三重循环对一个3位数的百位a(a的范围为1~9)、十位b(b的范围为0~9)和个位c(c的范围为0~9)进行穷举,在循环体中,计算出3位数n(n=100*a+10*b+c),然后进行判断,若满足a*a*a+b*b*b+c*c*c== n,则n是水仙花数。 (4)源程序2。 #include using namespace std; int main() { int n, a, b, c; //n、a、b和c分别为三位数自身及其百位、十位和个位 for(a=1 ;a<=9;a++) for (b=0; b<=9;b++) for(c=0;c<=9;c++) { n=100*a+10*b+c; if(a*a*a+b*b*b+c*c*c== n) printf("%d\n",n); } return 0; } 习题4 4-1 子数整数 本题选自洛谷题库(https://https://www.360docs.net/doc/441691613.html,/problem/P1151) 题目描述 对于一个五位数a1a2a3a4a5,可将其拆分为三个子数: sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5 例如,五位数20207可以拆分成 sub1=202 sub2=020(=20)

二年级下册生活中大数练习题

?一、填一填 ?最小的四位数是(),最小的五位数是(),最小的五位数中有()个最小的四位数。 ?比最大的三位数多1的数是() ?用7,0,5,0组成一个最大的四位数是(),只读出一个零的四位数是()?5296后面的第六个数是() ?按要求排列下面各数 ?把下面各数按照从小到大的顺序排列 ?2002,2200,2020,2220,2022,222 ?( )<( ) <( ) <( ) <( ) <( ) ?把下面各数按照从大到小的顺序排列 ?5007,5700,5070,5079,570,750 ?( )>( ) >( )>( )>( )>( ) ?二.按要求回答问题 ?991,361,846,650,852,366 ?(1)哪些数在300~400之间? ?(2)哪些数在600~900之间? ?(3)最接近1000的数是哪一个? ?(4)按从小到大的顺序排列上面各数。 ?( )<( ) <( ) <( ) <( ) <( ) ?三.在□里填上合适的数 ?6616 >66□6 2□22<2345 7996<□000 5□60>5850 ?8334<833□<8336 2423>24□□>2421 ?四.用3,5,8三个数字,可以组成哪些比600小的三位数? ?五.读一读,圈出每组中最大和最小的数;并按从大到小的顺序排列下面各数。 ?(1)7030,7003,7300,7058,7320 ?(2)998,1001,9875,8912,8899,999 ?6. □里最大能填几? ?2905>2□95 □34<534 7050>□051 455□<4566 ?7100<71□1 1000>□99 5500>□500 8□61<8661 362>□79 ?7、填上合适的单位(十、百、千) (1)实验小学二(1)班约有五()人。 (2)某小学约有学生八()人 (3)某县约有小学生九()人 ?8.填空 (1)一个数从右边起,第五位是()位,它的计数单位是(), (2)2900里面有()个一百,一万里面有()个一千。 (3)一个数的最高位是千位,这个数是()位数 (4)由5个千,1个百,8个十,2个一组成的数是(),组成的最大四位数是(),最小四位数是()

JAVA课后习题答案

前言 学习网址https://www.360docs.net/doc/441691613.html, 第一章Java语言基础 1.指出Java语言的主要特点和ava程序的执行过程。 答:强类型。 编译和解释。 自动无用内存回收功能。 面向对象。 与平台无关。 安全性。 分布式计算。 多线程。 2.说出开发与运行Java程序的主要步骤。 答:安装SUN的JDK,配置class path 编写源文件。 编译。 运行。 3.如何区分应用程序和小应用程序。 答:应用程序必须在一类中定义一个main()方法,该方法代表应用程序的入口。 小应用程序不必定义main()方法,但是必须继承applet类。 4.说出Java源文件的命名规则。 答:和类命名规则一样,首字母大写。 5.选择一种上机环境,参照实例,编写一个输出“hello world!”字样的Java程序。 答:选择SUN的IDE,用UltraEdit-32编写如下: //HelloWorld.java /**

*这是第一个程序 *@author 饶林 *@see https://www.360docs.net/doc/441691613.html, */ class HelloWorld{ public static void main(String[] args) { System.out.println("Hello World!"); } } 6.Java用什么字符集?共有多少个不同的字符? 答:Java语言使用Unicode字符集,共有65535个字符。 7.Java语言标识符的命名规则是什么? 答:由字母(包括英文字母、下划线、美元字符、文字字符)和数字字符组成。 限定标识符的第一个字符不能是数字。 8.Java有哪些基本的数据类型,它们的常量又是如何书写的? 答:基本的数据类型也称为原始数据类型,是系统预先规定的一些常用类型。它们是:整数类型、浮点数(实数)类型、字符(文字)类型、逻辑类型(布尔型)。 9.指出下列内容那些事Java语言的整形常量,哪些是浮点数类型常量,那些两者都 不是? 1)E-4 2)A423 3)-1E-31 4)0xABCL 5).32E31 6)087 7)0x L 8)003 9)0x12.5 10)077 11)11E 12)056L 13)0. 14).0 答:整形常量:4,5,6,8,10,12 浮点型:1,3,9,13,14 两者都不是:2,7,11 第二章运算和语句 1.Java字符能参加算术运算吗? 答:能,例如char类型a自加后变b

两个极大正整数求和C++源程序

#include #include using namespace std; int main() { string a, b; int *sum; int i, ja, jb; cout << "请输入两个数字,每个数字以空格结尾:" << endl; cin >> a >> b; string temp; if ( a.size() > b.size() ) // 如果a长度大于b,则交换两字符串 { temp = a; a = b; b = temp; } // 在这后,就肯定是a的长度比b小,所以和的位数最大就是b的位数+1。 sum = new int[b.size()+1]; // 所以给和申请b的位数+1个位置。 sum[0] = 0; char achar[1]; char bchar[1]; int carry = 0; // 记录进位 int sizeDif = b.size() - a.size(); // 记录两个数字的位数差 int count; // 记录和的位数 for ( ja = a.size()-1, jb = b.size()-1; ja >= 0; ja--, jb-- ) { achar[0] = a[ja]; bchar[0] = b[jb]; sum[jb+1] = atoi(achar) + atoi(bchar) + carry; carry = 0; // 清空进位标志位 if( sum[jb+1] > 9 ) { carry = 1; sum[jb+1] -= 10; // 使之成为一位数,方便输出。

(完整)北师大二年级数学下册生活中的大数练习题

北师大二年级数学下册生活中的大数练习题 一、读出下面各数。 5632 读作: 9096 读作: 3030 读作: 7003 读作: 2097读作: 1230读作: 1111 读作: 9990 读作: 8484读作: 二、选择题:把下面正确答案序号填在括号里。 1. 601、106、600这三个数中,()最小。 A、601 B、106 C、600 2. 605、650、600这三个数中,()最大。 A、605 B、650 C、600 3. 比最大的三位数多1的数是()。 A、999 B、1000 C、1100 4. 一个四位数,千位上和个位上都是1,其它数位上都是0,这个数是()。 A、1010 B、1001 C、1100 5. 读数时,中间有两个零()。 A、都要读出来 B、都不读出来 C、只读一个零 6. 最大的四位数是()。 A、1000 B、9988 C、9999 7. 五千零五十五写作()。 A、5050 B、5550 C、5055 8. 与10000最近的数是()。 A、9999 B、1000 C、9000 9. 用两个0,两个4组成的四位数中,不读出0个是()。 A、4400 B、4004 C、4040 10. 9998的近似数是() A、9990 B、10000 C、9000 三、判断题,在对的()里画“√”,错的画“×”。 1. 一千是由十个千组成。() 2. 写八百时,先要写8,再在后面写2个0。() 3. 五百零四,写作54。() 4. 609读作六百九十。() 5. 一千零一写作 101。() 6. 最大的两位数是999。() 7. 2010读作二千零一。() 8. 一个四位数最高位是万位。() 9. 读数时,数的末尾不管有几个0,都不读。()

C语言实验报告(函数应用)

C语言程序设计II实验报告题目:实验五函数应用 院系名称:计算机学院 专业名称:计算机科学与技术 班级: 学号: 学生姓名: 指导教师: 实验日期:2017年4月1日 报告提交截止日期:2017年4月11日

一、 实验目的 1、 掌握C 语言函数的定义方法、函数的声明及函数的调用方法及调用过程; 2、 掌握主调函数和被调函数之间的参数传递方式; 二、 实验内容与要求: 1、 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用 另一个函数根据求出的最大公约数求最小公倍数。(提示:设两个整数是a,b ,最大公约数是p,最小公倍数是q ,那么ab=pq ) 2、 用牛顿迭代法求方程f(x)=ax 3+bx 2+cx+d=0的根。系数a 、b 、c 、d 由主 函数输入。求根过程写成函数。(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x 0,然后重复使用迭代公式: 求x 的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。x 0可以从键盘输入或直接设定。) 3、 定义一个函数,功能是计算n 个学生的成绩中高于平均成绩的人数,并 作为函数返回值。用主函数来调用它。统计30个学生成绩中高于平均成绩的有多少人。 4、 ∑=+++==n i n p p p i p n s 1 )()2()1()()( ,!)(i i p = 5、 编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给

定圆锥的高、底面半径,计算该圆锥的体积和表面积。 6、编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、 完全数(或称完数)、互满数。 提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对素数, 例如13和31就是一个绝对素数。水仙花数是指一个三位整数,其各位 数字立方之和等于该数。例如,153就是一个水仙花数:153=1*1*1+ 5*5*5+3*3*3。完全数是指一个数正好是它的所有约数(本身除外)之和。 例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。 如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对 方,则称这两个数为互满数。 三、实验结果 1 题目内容与要求:求两个整数的最大公约数和最小公倍数。用一个函数求最大 公约数,用另一个函数根据求出的最大公约数求最小公倍数。(提示:设两个整数是a,b,最大公约数是p,最小公倍数是q,那么ab=pq) 算法简要描述(文本):通过循环找出最大公约数,根据公式求最小公倍数。 源代码标识符说明(文本):a,b存储数字i,j找最小公倍数和最大公因数。 源代码(粘贴程序,注意缩进,不得使用截图): #include"stdio.h" int f(int a,int b) {int i,j; if(a>b) {a=a+b;b=a-b;a=a-b; } for(i=a;i>=1;i--) if(a%i==0&&b%i==0) return i; }

相关文档
最新文档