diff --git a/report2.md b/report2.md index ed607ee84d240c1916f314b1013251ea7aa1fed8..59627255b764e56a17243c21ed2ec80328b26072 100644 --- a/report2.md +++ b/report2.md @@ -20,31 +20,169 @@ -## 问题1: - +## 问题1: 整数的特殊性质 ### 1. 问题陈述 +给定一个正整数 n,判断这个数是否具一系列特殊性质,如:奇数(odd number)、偶数(even number)、素数(prime number)、完数(perfect number)、回文数(palindrome number)和水仙花数(narcissistic number)。 + +要求使用函数判断数的性质。 ### 2. 输入、输出描述 +输入一个正整数 +判断其是否为奇数、偶数、素数、完数、回文数和水仙花数并输出判断结果 ### 3. 演算示例 +输入1:1 +输出1:odd = YES +even = NO +prime = NO +perfect = NO +palindrome = YES +narcissistic = NO + + + +输入2:6 +输出2:odd = NO +even = YES +prime = NO +perfect = YES +palindrome = YES +narcissistic = NO ### 4. 算法设计 +#include +void odd(int x); +void even(int x); +void prime(int x); +void perfect(int x); +void palindrome(int x); +void narcissistic(int x); + +int main()//主函数 +{ + int n,i,x,a,b; + printf("请输入一个数:"); + scanf("%d",&x); + odd(x); + even(x); + prime(x); + perfect(x); + palindrome(x); + narcissistic(x); + return 0; + } + +void odd(x)//判断是否为奇数 +{ + if(x%2!=0) + { + printf("odd = YES\n"); + + } + else{ + printf("odd = NO\n"); + } + return 0; +} +void even(x)//判断是否为偶数 +{ + if(x%2==0) + { + printf("even = YES\n"); + } + else{ + printf("even = NO\n"); + } + return 0; +} +void prime(x)//判断是否为复数 +{ + int m,i; + for(m = 2;m <= x;m++) + { + if(i%m==0) + { + printf("prime = NO\n"); + return 0; + } + } + printf("prime = YES\n"); + return 0; +} +void perfect(x)//判断是否为完数 +{ + int sum=0,i; + for(i=1;i0){ + y=y*10+s%10; + s=s/10; + } + if(y==x){ + printf("palindrome = YES\n"); + }else{ + printf("palindrome = NO\n"); + } + return 0; +} +void narcissistic(x)//判断是否为水仙花数 +{ + int a,b,c; + int n=x; + int i; + a=x%10; + b=x/10%10; + c=x%100; + int sum=a*a*a+b*b*b+c*c*c; + if(sum==x) + { + printf("narcissistic = YES\n"); + } + else{ + printf("narcissistic = NO\n"); + } +} + + + + ### 5. 测试 +在DEVc++上测试通过 ### 小结 +该问题需写多个函数,所以导致书写过程变得繁琐,