输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。
100 120 300 380
no 370 371
#include<stdio.h>
#include<math.h>
int main()
{
int n1=0;
int n2=0;
while(~scanf("%d%d",&n1,&n2))
{
int i=0;
int count=0;
for( i=n1;i<=n2;i++)
{
int num=i;
int sum=0;
while(num)
{
sum=sum+pow(num%10,3);
num/=10;
}
if(sum==i)
{
count++;
printf("%d ",i);
}
}
if(count==0)
printf("no\n");
}
return 0;
} #include "iostream"
using namespace std;
int main()
{
int so, it;
while (scanf("%d %d", &so, &it) != EOF) {
bool flag=0;
for (int i = so; i < it; i++) {
int a, b, c;
a = i / 100;
b = (i / 10) % 10;
c = i % 10;
if (i == a *a*a + b *b*b + c *c*c) {
if(flag==0){
printf("%d",i);
}
else{
printf(" %d", i);
}
flag = 1;
}
}
if (flag != 1)
printf("no");
printf("\n");
}
}
不想用数学函数.....
m,n=input().split() n=int(n) m=int(m) M=[] for i in range(m,n): a=i//100 b=i%100 c=b//10 d=b%10 if i==a**3+c**3+d**3: M.append(i) if M==[]: print('no') else: for i in M[:-1]: print(i,end=' ') print(M[-1])
#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int main()
{
int m=0,n=0;
while(cin>>m>>n)
{
vector<int> ivec;
for(int i=m;i<=n;i++)
{
int a=i/100; //百位数;
int b=((i%100)/10); //十位数;
int c=i-a*100-b*10;
if(pow(a,3)+pow(b,3)+pow(c,3)==i)
ivec.push_back(i);
}
if(ivec.size()==0)
cout<<"no";
else
{
for(int i=0;i<ivec.size()-1;i++)
cout<<ivec[i]<<" ";
cout<<ivec[ivec.size()-1];
}
}
return 0;
}
}
#include<stdio.h>
#include<math.h> // double pow(double x, double y) 返回x的y次方
int main(){
int m , n , i , judge = 0 , one , ten , hun;
while( scanf("%d %d",&m,&n) != EOF )
{
for( i = m ; i <= n ; i++)
{
one = i % 10;
hun = i / 100;
ten = ( i - hun * 100 ) / 10;
if( pow(one,3) + pow(ten,3) + pow(hun,3) == i )
{
judge = 1;
printf("%d ",i);
}
if( i == n )
{
if( judge == 0 ) printf("no");
printf("\n");
}
}
}
return 0;
} #include <iostream>
int main() {
int m, n, val, sum, tmp, flag;
while (scanf("%d %d", &m, &n) != EOF) {
flag = 1;
for (int i = m; i <= n; ++i) {
val = i; sum = 0;
while (val) {
tmp = val % 10;
sum += (tmp * tmp * tmp);
val /= 10;
}
if (sum == i) printf("%d ", i), flag = 0;
}
if (flag) printf("no");
printf("\n");
}
return 0;
} #include<stdio.h>
#include<math.h>
int main()
{
int m=0,n=0;
int a=0,b=0,c=0,i=0,j=0;
while(scanf("%d %d",&m,&n)!=-1)
{
j=0;//状态置0找不到
for(i=m;i<=n;i++)
{
c=i%10;//获取个位数字
b=i/10%10;//获取十位数字
a=i/100%10;//获取百位数字
if(i==pow(a,3)+pow(b,3)+pow(c,3))
{
printf("%d ",i);//打印输出找到的数字
j=1;//状态置1找到了
}
}
if(j==0)
printf("no\n");
}
return 0;
} #include <iostream>
using namespace std;
bool flower(int n)
{
int x = n, sum = 0;
while (n)
{
int e = n % 10;
sum += e * e * e;
n /= 10;
}
if (sum == x) return true;
return false;
}
int main()
{
int m, n;
while (cin >> m >> n)
{
int cnt = 0;
for (int i = m; i <= n; i ++ )
{
if(flower(i)) {
cnt ++;
cout << i << ' ';
}
}
if (!cnt) cout << "no" << endl;
else cout << endl;
}
} var
m,n,i,a,b,c,s:longint;
begin
while not eof() do
begin
readln(m,n);
s:=0;
for i:=m to n do
begin
a:=i div 100;
b:=i div 10 mod 10;
c:=i mod 10;
if a*a*a+b*b*b+c*c*c=i then begin
inc(s);
if s=1 then write(i)
else write(' ',i);
end;
end;
if s=0 then write('no');
writeln;
end;
end. 对了好像就我一个发了Pascal代码
def func(n):
a = int(n / 100)
b = int((n - a*100) / 10)
c = n - a*100 - b*10
return a,b,c
raw_input = input()
input_num = raw_input.split()
min_num = int(input_num[0])
max_num = int(input_num[1])
res = []
for i in range(min_num, max_num+1):
a,b,c = func(i)
temp = a**3 + b**3 + c**3
if temp == i:
res.append(str(i))
if len(res) == 0:
print('no')
else:
res = ' '.join(res)
print(res)
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#include <string>
#include <vector>
void fun(int m,int n)
{
int s1;
int s2;
int s3;
int count=0;
for(int i=m;i<=n;i++)
{
s1=i/100;
s2=(i-s1*100)/10;
s3=i%10;
if(i==(s1*s1*s1+s3*s3*s3+s2*s2*s2))
{
if(count==0)
{
cout<<i;
}
else
{
cout<<" "<<i;
}
count++;
}
}
if(count==0)
{
cout<<"no";
}
cout<<endl;
}
int main()
{
int m[1000], n[1000];
int start;
int end;
int length=0;
while(cin>>start>>end)
{
m[length]=start;
n[length]=end;
length++;
}
for(int i=0;i<length;i++)
{
fun(m[i],n[i]);
}
return 0;
} #include <iostream>
#include <cmath>
using namespace std;
bool Fun(int n)
{ int a,b,c; a = n/100; b = (n/10)%10; c = n%10; if(n == pow(a,3)+pow(b,3)+pow(c,3)) return true; else return false;
}
int main()
{ int m,n; while(cin>>m>>n) { int cnt = 0; for(int i=m;i<=n;i++) { if(Fun(i)) { cnt++; if(cnt==1) cout<<i; else cout<<" "<<i; } } if(cnt==0) cout<<"no"; cout<<endl; } return 0;
}
#include<iostream>
#include<vector>
using namespace std;
bool isXianHua(int n){
int sum=0;
int old=n;
for(int i=0;i<3;i++,n/=10){
int tmp=n%10;
sum+=tmp*tmp*tmp;
}
if(sum==old)return true;
return false;
}
int main(){
int m,n;
vector<int> arr;
cin>>m>>n;
for(int i=m;i<=n;i++){
if(isXianHua(i)){
arr.push_back(i);
}
}
if(arr.size()==0)cout<<"no";
for(int j=0;j<arr.size();j++){
cout<<arr[j];
if(j<arr.size()-1)cout<<" ";
}
return 0;
}
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static boolean isNarcissisticNumber(int num){
int cnt = 0,temp = num;
while(temp>0){
cnt += Math.pow(temp%10, 3);
temp /= 10;
}
if(cnt == num){
return true;
}
return false;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNext()){
int m = input.nextInt();
int n = input.nextInt();
ArrayList<Integer>list = new ArrayList<>();
for(int i = m;i<=n;i++){
if(isNarcissisticNumber(i)){
list.add(i);
}
}
if(list.size()>0){
for(int i = 0;i<list.size()-1;i++){
System.out.print(list.get(i)+" ");
}
System.out.print(list.get(list.size()-1)+"\n");
}
else{
System.out.println("no");
}
}
}
}
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){Scanner in = newScanner(System.in);intstart = in.nextInt();intend = in.nextInt();booleanisFirst = true;String res = "no";for(inti=start;i<=end;i++){if(isNrtNumber(i)){if(isFirst){res = ""+i;isFirst = false;}else{res = res+" "+i;}}}System.out.println(res);}publicstaticbooleanisNrtNumber(intnum){intres = 0;inttemp = num;while(temp!=0){res += (int)Math.pow(temp%10,3);temp/=10;}returnres == num;}}