Programación en lenguaje C (tercera edición) Ejercicios de He Qinming 5-6
Directorio de artículos
tema
Use la función para generar el número de narcisos:
ingrese dos enteros positivos myn (1≤m, n≤1000), y genere
todos los números entre myn que satisfagan la suma cúbica de cada dígito igual a sí mismo.
Se requiere definir y llamar a la función es (número) para determinar si la suma de los cubos de los dígitos del número es igual a sí misma. Intente escribir el programa correspondiente.
Proceso de análisis
ingresar
Condición: Ingrese dos números enteros positivos myn (1≤m, n≤1000)
Producción
Condición: Genere la suma de los cubos de todos los dígitos entre myn igual a su propio número. Se requiere definir y llamar a la función es (número) para determinar si la suma de los cubos de los dígitos del número es igual a sí misma.
Código
#include <stdio.h>
#include <math.h>
int is(int number);/*函数声明*/
int main () {
/*定义变量*/
int m, n; /*定义变量,存储输入正整数m以及n*/
/*赋值*/
printf("请输入正整数m以及n:\n"); /*输入提示*/
scanf("%d %d", &m, &n); /*输入并赋给变量*/
for (int i = m; i < n; i++) {
if(is(i)==1) printf("%d为水仙数 \n",i);
}
return 0;
}
int is(int number){
int sum = 0;/*各个位数字之和*/
int temp = number;/*暂存number对10取余的数,即去掉个位数字的数*/
int weishu = 0;/*number是几位数*/
while(temp!=0){
/*判断number是几位数*/
temp = temp/10;
weishu++;
}
temp = number;
while(temp!=0){
int gewei = temp%10;/*获取number的个位数字*/
sum = sum + pow(gewei, weishu);
temp = temp/10;
}
if(number == sum) return 1;/*number为水仙数*/
else return 0;
}