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

合集下载

题目打印出所有的“水仙花数”,所谓“水仙花数”是指2

题目打印出所有的“水仙花数”,所谓“水仙花数”是指2

printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
❖ 题目:输入两个正整数m和n,求其最大公约数和最小 公倍数。
❖ 程序分析:利用辗除法
❖ GCD(A, B)=GCD(B, A%B)
❖ 当A%B==0时,B即为最大公约数
❖ GCD〔12,18〕=GCD〔18,12〕
#include “stdio.h〞
main()
{int max, next, n;
scanf(“%d〞,&next);
max=next;
/* 第一个数就是最大数 */
for (n=2;n<=10; n++) /* 输入另外的九个数,并依次 {scanf(“%d〞,&next); 比较出最大数 */
if (next>max) max=next; }
printf(“max=%d\n〞, max); /* 打印出最大数 */ }
问题:求出以“9999〞作为结束标志的一组整数的最大数。 例如输入:123 45 5678 34 9999 67 23456,输出结果为 5678,即对9999及其以后的数不作处理。
if (n%i==0) { flag=0; break; } if (flag==1) printf(“该数是素数〞〕;
else printf(“该数不是素数〞); }
❖ 猴子吃桃问题:猴子第一天摘下假设干个桃子,当即 吃了一半,还不瘾,又多吃了一个第二天早上又将剩 下的桃子吃掉一半,又多吃了一个。以后每天早上都 吃了前一天剩下的一半零一个。到第10天早上想再吃 时,见只剩下一个桃子了。求第一天共摘了多少。

郑州轻工业学院ACM13411350网站试题解析

郑州轻工业学院ACM13411350网站试题解析

1341最大值Description输入一个整数n和n个整数,输出这n个整数的最大值。

Input输入有两行:第一行是一个正整数n,第二行是n个整数Output输出包含一个整数,即n个数中的最大值,单独占一行。

Sample Input43 7 5 6Sample Output7Source#include<>int main(){int n,i,a[10000],max;scanf("%d",&n);scanf("%d",&a[0]);max=a[0];for(i=1;i<n;i++){scanf("%d",&a[i]);if(max<a[i]){max=a[i];}}printf("%d\n",max);return 0;}1342对数表Description输入两个正整数m和n,输出m到n之间每个整数的自然对数。

Input输入包括两个整数m和n(m<=n),之间用一个空格隔开。

Output每行输出一个整数及其对数,整数占4列,对数占8列,对数保留4位小数。

Sample Input2 4Sample Output234Source#include<>#include<>int main(){double n,m,r;int i;scanf("%lf%lf",&m,&n);for(i=m;i<=n;i++){r=log(i);printf("%4d%\n",i,r);}return 0;}1343求数列的和Description数列的定义如下:数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

Input由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。

实验05 函数程序设计

实验05 函数程序设计

计算两个复数之积(调试示例error05_1)程序填空,不要改变与输入输出有关的语句。

分别输入两个复数的实部与虚部,编程调用函数实现计算两个复数之积。

若两个复数分别为:c1=x1+(y1)i, c2=x2+(y2)i,则:c1*c2 = (x1*x2-y1*y2) + (x1*y2+x2*y1)i输入输出示例:括号内是说明输入1 2 (x1=1, y1=2)-2 3 (x2=-2, y2=3)输出product of complex is (-5.000000)+(1.000000)i#include<stdio.h>/*---------*/int main(void){float imag1, imag2, real1, real2;scanf("%f%f", &real1, &imag1);scanf("%f%f", &real2, &imag2);complex_prod(real1, imag1, real2, imag2);printf("product of complex is (%f)+(%f)i\n", result_real, result_imag);return 0;}/*---------*/使用函数求1! + 2! + … + m!(改错题error05_2)程序填空,不要改变与输入输出有关的语句。

求1! + 2! + … + 10!,要求定义并调用函数fact(n)计算 n!,函数形参 n 的类型是int,函数类型是double。

输入输出示例:括号内是说明输出:1!+2!+...+10! = 4037913.000000#include <stdio.h>double fact(int n);int main(void){int i;double sum;/*---------*/printf("1!+2!+...+10! = %f\n", sum); return 0;}/*---------*/使用函数判断数的符号使用函数求奇数和程序填空,不要改变与输入输出有关的语句。

水仙花数

水仙花数

1.“水仙花数”是指这样的数,其各位数字的立方和等于该数本身.编写程序求100至999的范围内有多少个水仙花数#include<stdio.h>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<stdio.h>main(){int x,y,z,s,n=0;for(x=-55;x<=55;x++)for(y=-55;y<x;y++)for(z=-55;z<y;z++){s=x*x+y*y+z*z;if(s==3025)n++;}printf("%d\n",n);}3.”水仙花数”是指这样的数,其各自数字的立方和等于该数本身.编写程序求100至400的范围内有多少的水仙花数. #include<stdio.h>main(){int dig,k,m,s,count;count=0;for(k=100;k<=400;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); }4.50元的整币兑换成5元,2元,1元币值(三种币值均有,缺少一种或两种都计算在内)的方法有多少种.#include<stdio.h>main(){int a,b,c,s,count=0;for(a=0;a<=10;a++)for(b=0;b<=25;b++)for(c=0;c<=50;c++){s=5*a+2*b+c;if(s==50)count++;}printf("%d\n",count);}5.A,B,C是三个小于或等于100正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数.求130<A+B+C<150且A>B>C的倒勾股数有多少组.#include<stdio.h>main(){int A,B,C,n=0;for(A=1;A<=100;A++)for(B=1;B<A;B++)for(C=1;C<=B;C++){if((A+B+C)>130&&(A+B+C)<150&&(1.0/(A*A)+1.0/(B* B)==1.0/(C*C)))n++;}printf("%d\n",n);}6.爱婴斯坦走台阶:有一台阶,如果每次走二阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶; 如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?#include<stdio.h>main(){long int x;for(x=0;x<=10000000;x++){if(x%2==1&&x%3==2&&x%4==3&&x%5==4&&x%6 ==5&&x%7==0)break;}printf("%ld\n",x);}7.编程求[120,140]之间的弦数的个数(若某正整数的平方等于另两个正整数平方值和,则称该数是弦数.例如3^2+4^2=5^2,因此5是弦数).#include<stdio.h>main(){int i,j,k,s,count=0;for(k=121;k<=140;k++)for(i=1;i<140;i++)for(j=1;j<=i;j++){s=i*i+j*j;if(s==k*k){printf("%d ",k);count++;}}printf("[121,140]之间的弦数个数是:%d\n",count);}8.编写程序,计算1000以内有多少个这样的数,其十位为6且能被8整除.#include<stdio.h>main(){int a,b,c,i;int count=0;for(i=10;i<1000;i++){a=i%100;b=a/10;c=i%8;if(b==6&&c==0)count++;}printf("1000以内有%d个这样的数\n",count);}9.编写程序,计算在[0,60]的范围内有多少个数,其每位数的乘积大于每位数的和.#include<stdio.h>main(){int a,b,i;int count=0;for(i=0;i<=60;i++){a=i/10;b=i%10;if(a*b>a+b)count++;}printf("%d\n",count);}10.编写程序,求1到5000之间的能被5整除前若干个偶数之和,当和值大于500时退出,输出该和值.#include<stdio.h>main(){int i,a,s=0;for(i=1;i<=5000;i++){a=i%10;if(a==0)s+=i;if(s>500)break;}printf("%d\n",s);}11.编写程序,求出1~7000以内能被3或7整除的数的个数. #include<stdio.h>main(){int i,n=0;for(i=1;i<=7000;i++){if(i%3==0||i%7==0)n++;}printf("%d\n",n);}12.编写程序,求出100到500之间同时满足初3余2和处5余3条件的数的个数.#include<stdio.h>main(){int i,a,b,count=0;for(i=100;i<=500;i++){a=i%3;b=i%5;if(a==2&&b==3)count++;}printf("%d\n",count);}13.编写程序.求出3到100之间的所有非偶数非素数的数之和.main(){int a,i,j,s=0;for(i=3;i<=100;i++){for(j=2;j<i;j++){a=i%j;if(a==0)break;}if(a==0&&i%2!=0)s+=i;}printf("%d\n",s);}14.编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中I,j,k是[0,9]之间的一个整数且i<k.main(){int i,j,k,s=0,count=0;for(j=0;j<=9;j++)for(k=0;k<=9;k++)for(i=0;i<k;i++){s=i*101+j*20+k*101;if(s==1534)count++;}printf("%d\n",count);}15.编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是11的倍数,且A=B+C,即第2位数加上第3位数等于第1位数.#include<stdio.h>main(){int i,a,b,c,count=0;for(i=1000;i<10000;i++)a=i/1000;b=(i%1000)/100;c=((i%1000)%100)/10;if((i%11==0)&&(a-b-c==0))count++;}printf("%d\n",count);}16.编写程序,求三位数的偶数中,所有各位数字之和是15的倍数的数的个数.#include<stdio.h>main(){int i,a,b,c,count=0;for(i=100;i<1000;i+=2){a=i/100;b=(i%100)/10;c=(i%100)%10;if((a+b+c)%15==0)count++;printf("%d\n",count);}17.编写程序,求四位数的奇数中,所有各位数字之积(且不为0)是125的倍数的数的和.#include<stdio.h>main(){int a,b,c,d,i,s=0;for(i=1001;i<10000;i+=2){a=i/1000;b=(i%1000)/100;c=((i%1000)%100)/10;d=((i%1000)%100)%10;if(((a*b*c*d)%125==0)&&(a*b*c*d)!=0)s+=i;}printf("%d\n",s);}18.编写程序,求一正整数等差数列的前六项的和,该数列前四项之和是26,四项之积是880.#include<stdio.h>main(){int a,d;for(a=1;a<=6;a++)for(d=1;d<=4;d++){if(4*a+6*d==26&&a*(a+d)*(a+2*d)*(a+3*d)==880)printf("sum=%d\n",6*a+15*d);}}19.编写程序,求在5000以内能被17或者23整除的正整数个数.#include<stdio.h>main(){int i,count=0;for(i=1;i<5000;i++){if((i%17==0)||(i%23==0))count++;}printf("%d\n",count);}20.编写程序.求在四位数的偶数中.所有各位数字之和是30的倍数的数的和.#include<stdio.h>main(){int i,a,b,c,d,s=0;for(i=1000;i<10000;i+=2){a=i/1000;b=(i%1000)/100;c=((i%1000)%100)/10;d=((i%1000)%100)%10;if((a+b+c+d)%30==0)s+=i;}printf("%d\n",s);}21.编写程序.统计1000~9999之间的所有满足以下条件的四位数的个数.该书是一个完全平方数,且第1,2位数字之和为12,第3,4位数字之和为24.#include<stdio.h>main(){int s,s1,s2,s3,s4,i,count=0;for(i=32;i<100;i++){s=i*i;s1=s/1000;s2=s%1000/100;s3=s%1000%100/10;s4=s%1000%100%10;if(s1+s2==12&&s3*s4==24)count++;}printf("%d\n",count);}22.编写程序,已知:S=1+3+5+7+9+……,求S不大于9000的最大值.#include<stdio.h>main(){int i=1,s=0;while(s<=9000){s+=i;i+=2;}s=s-i+2;printf("s=%d\n",s);}23.编写程序,已知:S=2+4+8+16+32+…..,求S不大于1500的最大值.#include<stdio.h>main(){int i=1,s=0;while(s<1500){i=2*i;s=s+i;}s=s-i;printf("s=%d\n",s);}24.除1和他本身外,不能被其他整数整除的正整数称为素数(注:1不是素数,2是素数).若两数之差为2,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数.#include "stdio.h"#include "math.h"int sushu(int n){ int i;for(i=2;i<=sqrt(n);i++)if(n%i==0)return 0;return 1;}main(){int i,count=0;for(i=31;i<=601;i++)if(sushu(i)&&sushu(i-2))count++;printf("%d\n",count);getch();}25.当m值为50时,计算下列公式的值:T=1-1/2-1/3-1/4-…..-1/m.要求:按四舍五入的方式精确到小数点后四位.#include<stdio.h>main(){int i;double T=1;for(i=2;i<=50;i++){T=T-1.0/i;}printf("%.4f\n",T);}26,当n的值为25时,计算下列公式的值:s=1+1/1!+1/2!+1/3!+1/n!.要求:按四舍五入的方式精确到小数点后四位.#include<stdio.h>main(){int i;float t=1,s=1;for(i=1;i<=25;i++){t=t*1.0/i;s=s+t;}printf("%.4f\n",s);}27.斐波那契数列的前两项是1,1,其后每一项都是前面两项之和,求:10000000以内最大的斐波那契额数?#include<stdio.h>main(){int s1=1,s2=1,a=0,i=0,t;while(a<10000000){a=s1+s2;i=a;t=s2;s2=i;i=t;t=s1;s1=i;i=t;}printf("%d\n",a-i);}28.计算y=1+2/3+3/5+4/7+…….+n/(2*n-1)的值,n=50,要求:按四舍五入的方式精确到小数点后两位,#include<stdio.h>main(){int n=50,i;float y=0;for(i=1;i<=n;i++){y=y+(float)i/(2*i-1);}printf("y=%.2f\n",y);}29 计算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20项的值(已知:X=2)。

实验四 循环结构程序设计

实验四  循环结构程序设计
/* 求最大公约数算法1 */
#include "stdio.h"
void main( )
{
}
2.从整数1开始向上找,直至m和n中较小的数,每找到一个能同时被m和n整除的整数,将其存入一个变量中,当循环结束时,变量中存放的即为最大公约数。设n为m和n中较小的数,则如下程序段可实现:
for(k=1; k<=n; k++) if(m%k==0 && n%k==0) x=k;
}
2.字符常量’0’与数值常量0是不同的。
(六)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。
/* c4-6.c */
/* 计算1到100之间的奇数之和及偶数之和 */
#include "stdio.h"
void main( )
六、思考题
(一)求两个正整数x和y的最大公约数,请填空。
/* 求最大公约数程序 */
#include "stdio.h"
void main( )
{ int x,y,t,i;
printf("请输入两个数:");
scanf("%d,%d",&x,&y); /*注意scanf语句中间用“,”隔开*/
if(x > y){t = x; x = y; y = t;}
程序的基本结构如下:
/* c4-9.c */
/* 按条件求数列和 */
#include "stdio.h"
void main( )
{定义变量;
变量赋初值;

程序设计基础实验报告

程序设计基础实验报告

实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。

2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。

3. 正确书写算术表达式、赋值表达式和关系表达式。

4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。

5. 掌握简单的单步调试方法。

二、实验环境Windows XP ;Visual C++ 6.0。

三、实验内容1.在屏幕上显示一个句子“What is a computer?”。

2.求华氏温度150F 对应的摄氏温度。

计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。

3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。

4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。

四、实验要求1. 将上机验证正确的源代码写到实验报告上。

2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。

3.按时提交实验报告。

553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。

2.熟练掌握使用else-if 语句实现多分支结构程序设计。

二、实验环境Windows XP ;Visual C++ 6.0。

三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。

2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。

按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。

当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。

水仙花数和完全数

水仙花数和完全数

E-mail文化传播网水仙花数水仙花数外文名narcissistic number。

指的是:在自然数中,如果一个三位数等于其自身各个数字的立方和,那么这个三位数就称为“水仙花数”。

后来,水仙花数又发展称为阿姆斯特朗数,是指一个 n 位数( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

所以就有四位水仙花数、五位水仙花数、六位水仙花数。

等等。

实际上这只是自幂数的一种数。

严格来说三位数的3次幂数才是水仙花数。

(例如:1³+ 5³+ 3³ = 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到目前为止,已知的自然数中,只有四个水仙花数,它们分别是: 153、370、371、407153=1³+5³+3³370=3³+7³+0³371+3³+7³+1³407=4³+0³+7³完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

C语言经典题目

C语言经典题目
1
2
Hint
数据类型可以用64位整数:__int64
详细信息请参见:/Help/Code.html
1045
Description
给出一串字符,要求统计出里面的字母、数字、空格以及其他字符的个数。
字母:A, B, ..., Z、a, b, ..., z组成
A0 ,
Sample Output
1 1 1 1
1048
我们知道人民币有1、2、5、10、20、50、100这几种面值。
现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。
比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。
Input
输入有多组,每组一行,为一个整合n。
Input
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
Output
输出转换好的序列。数据之间用空格隔开。
Sample Input
5
2 1 5 4 3
Sample Output
1 2 3 4 5
1065
输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2中,所有数字字符也必须依次存入str2中。输出str2。
Input
输入只有一个正整数n,1≤n≤10
Output
输出改序列前n项和,结果保留小数后6位
Sample Input
3
Sample Output
5.166667
Hint
结果需要用double类型来保存
1064
Description
有一个长度为n的整数序列。请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
【输入形式】
输入2个正整数m和n(1≤m,n≤1000)
【输入输出样例1】(下划线部分表示输入)
Input m: 100
Input n: 400
1பைடு நூலகம்3
370
371
【样例说明】
输入提示符后要加一个空格。例如“Input m:”,其中“:”后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。*/
#include<stdio.h>
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++)
/*第5次作业第五章函数程序设计---5.7编程题《求两个正整数之间的水仙花数》
3.
【问题描述】
输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。
水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数is(number)判断number的各位数字之立方和是否等于其自身。
{
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;
相关文档
最新文档