Descrição do título
A primavera é a estação das flores, e os narcisos são o representante mais fascinante delas. Existe um número de narcisos na matemática. Ele o define assim: "Número de narcisos" refere-se a um número de três dígitos, e a soma cúbica de seus dígitos é igual a seu Por si só, por exemplo: 153 = 1 3 + 5 3 + 3 3 .
Agora é necessário gerar o número de todos os narcisos no intervalo de m e n.
Existem
vários grupos de dados de entrada, cada grupo ocupa uma linha, incluindo dois inteiros me n (100 <= m <= n <= 999).
Saída
Para cada instância de teste, é necessário produzir todo o número de narcisos dentro de um determinado intervalo, ou seja, o número de produtos narcisos deve ser maior ou igual am e menor ou igual a n. Se houver mais de um, ele deve ser organizado em ordem crescente Saída em uma linha, separada por um espaço; se o número de narcisos não existir no intervalo fornecido, saída no.
A saída de cada instância de teste ocupa uma linha.
Amostra de entrada
100 120
300 380
Saída de amostra
no
370 371
Ideias
Apenas simule o funcionamento da pergunta. De acordo com a descrição do título, o número de narcisos se refere a um número de três dígitos e a soma dos cubos de seus dígitos é igual a si mesmo.
Código de linguagem C:
#include<stdio.h>
#include<math.h>
int check(int i)
{
int x = i;
int x1 = x % 10;
x = x / 10;
int x2 = x % 10;
x = x / 10;
int x3 = x % 10;
if((x1 * x1 * x1 + x2 * x2 * x2 + x3 * x3 * x3) == i) return 1;
else return 0;
}
int main()
{
int m, n;
while(~scanf("%d %d", &m, &n))
{
int flag = 1;
int cnt = 0;
for(int i = m; i <= n; i++)
{
if(check(i))
{
cnt++;
if(flag)
{
flag--;
printf("%d", i);
}else printf(" %d", i);
}
}
if(cnt == 0) printf("no\n");
else printf("\n");
}
return 0;
}
Código C ++:
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false); //加速读入
int m, n, cnt;
while(cin >> m >> n)
{
cnt = 0;
for(int i = m; i <= n; i++)
{
int a = i / 100; //百位
int b = i / 10 % 10;//十位
int c = i % 10; //个位
if(i == a * a * a + b * b * b + c * c * c)
{
if(cnt == 0) cout << i;
else cout << " " << i;
cnt++;
}
}
if(cnt == 0) cout << "no";
cout << endl;
}
return 0;
}
A função da frase a seguir é agilizar a leitura dos dados, mesmo sem escrever.
ios::sync_with_stdio(false);
Na verdade, o número total de narcisos é quatro: 153.370.371.407.
Portanto, também podemos escrever:
#include<iostream>
using namespace std;
int main()
{
int m, n, cnt = 0;
while(scanf("%d%d", &m, &n) != EOF)
{
for(int i = m; i <= n; i++)
if(i == 153 || i == 370 || i == 371 || i == 407)
{
if(cnt == 0)
{
printf("%d", i);
cnt++;
}
else if(cnt > 0) printf(" %d", i);
}
cnt == 0 ? printf("no\n") : printf("\n");
cnt = 0;
}
return 0;
}