萌新运行不出结果哇,有带佬看看哪不对咩
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935-1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我的年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你推算一下,他当时到底有多年轻。#include <stdio.h>
int main()
{
int a,b,i;
a=i*i*i;
b=i*i*i*i;
for(i=1;i<=100;i++)
{
if(a/1000>=1&&a/1000<=9)//判断i三次方是否是四位数
if(b/100000>=1&&b/100000<=9)//判断i四次方是否是六位数
if(yes(a,b)==1)//判断a,b中所有数是否符合刚好包含0——9 , 若返回值为1,则符合
printf("%d",i);//将符合的i的值输出,i即为年龄
}
return 0;
}
int yes(int a,int b)
{
int i,j,k,t;
int p;
int q={9,8,7,6,5,4,3,2,1,0};
p=a/1000;
p=(a-1000*p)/100;
p=(a-1000*p-100*p)/10;
p=a-1000*p-100*p-10*p;//把a中的各位赋给p--p
p=b/100000;
p=(b-100000*p)/10000;
p=(b-100000*p-10000*p)/1000;
p=(b-100000*p-10000*p-1000*p)/100;
p=(b-100000*p-10000*p-1000*p-100*p)/10;
p=b-100000*p-10000*p-1000*p-100*p-10*p;
//把b中的各位赋给p---p
for(i=0; i<9; i++){
for(j=0; j<9-i; j++)
{
if(p<p){
t = p;
p = p;
p = t;
}
}
}//将p内的元素从大到小排序
for(i=0,j=1;i<10;i++)
{
if(p===q&&j==1)
j=1;
else
j=0;
}//判断p与q是否相等
if (j=1)
return 1;
else
return 0;
}
最后没有输出任何结果
c 写这些东东太麻烦了 python 也就是10几行代码的事情
#include <stdio.h>
void sort(int *arr, int sz)
{
for (int j = sz - 1; j >= 0; j--)
{
for (int i = 0; i+1 <= j; i++)
{
if (arr > arr)
{
int tmp = arr;
arr = arr;
arr = tmp;
}
}
}
}
int isarr(int* a,int alen,int * b,int blen){
if (alen!=blen){
return 0;
}
else{
for (int i=0;i<alen;i++){
if (a!=b)
{
return 0;
}
}
}
return 1;
}
void chaifen(int num,int *buf){
int cnt=0;
do{
buf=num%10;
num/=10;
}while(0!=num);
}
void addarr(int* s,int slen,int *d,int dlen){
for (int i=0;i<dlen;i++){
s=d;
}
}
int main()
{
int a[]={0,1,2,3,4,5,6,7,8,9};
int buf={0};
int buf2={0};
int y=1;
while(1)
{
if (y*y*y>9999 || y*y*y*y>999999){
break;
}
if(y*y*y<1000 || y*y*y*y<100000)
{
y++;
continue;
}
chaifen(y*y*y,buf);
chaifen(y*y*y*y,buf2);
addarr(buf,4,buf2,6);
sort(buf,10);
if(isarr(buf,10,a,10)){
printf("year:%d\n",y);
break;
}
y++;
}
return 0;
}
wp231957 发表于 2021-7-6 13:27
c 写这些东东太麻烦了 python 也就是10几行代码的事情
非常感谢,我照着您的思路又写了一遍,成功了。
只不过我依然没找出来我原本思路的错误,但还是非常感谢
页:
[1]