给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行!!! 铁铁们,成功的路上必然是孤独且艰难的,但是我们不可以放弃,远山就在前方,但我们能力仍然不足,所有我们更要奋进前行!!! 今天我们更新了刷题内容
水仙花数我们都知道是什么,就是比如一个三位数,然后第一个数的三次方加第二个数的三次方加第三个数的三次方等于这个数,然后什么是变种水仙花数呢?下面我们来一起看一下吧。
这就是变种水仙花数,我们先来看一下这个数究竟该怎么去做呢,我们可以看到,三位数需要两个式子相加,四位数需要三个,所以五位数就需要四个了,然后我们知道是怎样一个形式相加,这个题就不难了,下面我们就来看一下这个题的代码吧,我给大家准备了两个版本,C语言和C++版本
#include <stdio.h>
#include <stdlib.h>
void dfs(int num)
{
if (num > 99999)
{
return;
}
if (((num / 10) * (num % 10) + (num / 100) * (num % 100) + (num / 1000) * (num % 1000) + (num / 10000) * (num % 10000)) == num)
{
printf("%d ", num);
}
dfs(num + 1);
}
int main()
{
dfs(10000);
return 0;
}#include <stdio.h>
#include <stdlib.h>
void dfs(int num)
{
if (num > 99999)
{
return;
}
if (((num / 10) * (num % 10) + (num / 100) * (num % 100) + (num / 1000) * (num % 1000) + (num / 10000) * (num % 10000)) == num)
{
printf("%d ", num);
}
dfs(num + 1);
}
int main()
{
dfs(10000);
return 0;
}
#include <iostream>
using namespace std;
int check_Lily(int n)
{
int sum=0;
int a=(n/10000)*(n%10000);
int b=(n/1000)*(n%1000);
int c=(n/100)*(n%100);
int d=(n/10)*(n%10);
if((a+b+c+d)==n)return 1;
else return 0;
}
int main()
{
for(int i=10000;i<=99999;i++)
{
if(check_Lily(i)==1)
{
printf("%d ",i);
}
}
return 0;
}#include <iostream>
using namespace std;
int check_Lily(int n)
{
int sum=0;
int a=(n/10000)*(n%10000);
int b=(n/1000)*(n%1000);
int c=(n/100)*(n%100);
int d=(n/10)*(n%10);
if((a+b+c+d)==n)return 1;
else return 0;
}
int main()
{
for(int i=10000;i<=99999;i++)
{
if(check_Lily(i)==1)
{
printf("%d ",i);
}
}
return 0;
}
这就是我们变种水仙花数的题解了,希望对大家有一定的帮助!
这个题理解起来就要简单许多了,下面我们直接来我们的题目吧。
废话不多说,直接上代码,依然是两个版本:
#include<stdio.h>
int main()
{
int n,x;
scanf("%d",&n);
int arr[n],i;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
scanf("%d",&x);
for(i=0;i<n;i++)
arr[i]^=x;
for(i=0;i<n;i++)
{
if(arr[i]!=0)
printf("%d ",arr[i]^x);
}
return 0;}
#include<stdio.h>
int main()
{
int n,x;
scanf("%d",&n);
int arr[n],i;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
scanf("%d",&x);
for(i=0;i<n;i++)
arr[i]^=x;
for(i=0;i<n;i++)
{
if(arr[i]!=0)
printf("%d ",arr[i]^x);
}
return 0;}
#include <iostream>
using namespace std;
int main()
{
int n=0;cin>>n;
int*arr=(int*)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
int deletes;cin>>deletes;
for(int i=0;i<n;i++)
{
if(arr[i]!=deletes)
{
cout<<arr[i]<<" ";
}
}
}
#include <iostream>
using namespace std;
int main()
{
int n=0;cin>>n;
int*arr=(int*)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
int deletes;cin>>deletes;
for(int i=0;i<n;i++)
{
if(arr[i]!=deletes)
{
cout<<arr[i]<<" ";
}
}
}
本次我们讲述了两道题目,分别是变种水仙花数和删除序列中的某个数字,这两道题目的整体难度较小,所以希望大家可以搞懂他们,哪里不懂随时在评论区里问我,一定一一回复!