数据结构程序设计(用c++)!!急求!!!3
发布网友
发布时间:2023-10-19 18:28
我来回答
共5个回答
热心网友
时间:2024-11-24 05:21
#include<iostream>
using namespace std;
int enter()
{
char c;
int num;
while(!(cin>>num)||num<0||((c=getchar())&&(c!=' '&&c!='\n')))//如果输入字母或者字母和数字的组合,或者输入数小于0,提示输入错误,并恢复输入缓冲区的正确状态,刷新输入缓冲区
{
cin.clear();//恢复错误标志
fflush(stdin);//清空刷新 输入缓冲区
cout<<"请输入正整数"<<endl;
}
return num;
}
int IsInclude7(int num)
{
int temp;
do
{
temp=num%10;//num对10取余数,也就是取个位数字。
// cout<<"t="<<temp<<" ";
if(temp==7) return 1;//包含7
num=num/10;//将个位数字去掉
if(num==0) return 0;//不包含7
}while(1);
}
int main()
{
int num,i;
num=enter();
for(i=1;i<=num;)
{
if(i%7==0)//如果能被7整除
{
if(IsInclude7(i))//如果包含有数字7
cout<<i<<" ";
i=i+7;//不再加一,而是加7,因为能被7整除的,加7也能被7整除。
}
else
i++;
}
return 0;
}
热心网友
时间:2024-11-24 05:22
#include<stdio.h>
#define True 1 //定义个标示 代表是
#define False 0 //定义个标示 代表否
typedef int BOOL; //定义个bool代表 True 和 False
BOOL func(int x){ //求1 2 要求的整数
if(x%7!=0) return False; //不能整除7 则直接返回
while(x){//判断含有7的自然数,这个就是个数学问题,没事多讲的,
if(x%10==7) return True;
x/=10;
}
return False;//数字不符合要求直接返回
}
void main(){
int num;
int i;
printf("Please input N:");
scanf("%d",&num);
for(i=0;i<=num;i++){
if(func(i)){//调用func,判断这个数是否符合要求,注意 False 是 0 True是1 是1的话就打印着个数字,是0的话 则不打印,
printf("%d\n",i);
}
}
}
热心网友
时间:2024-11-24 05:22
// 返回数中是否包含7
bool contain7(int x)
{
while(x)
{
if(x%10==7)return true;
x /= 10;
}
return false;
}
void main()
{
int N = 100,i;
for(i=1; i<=N; i++)
{
//判断是否包含7且能被7整除
if(contain7(i) && i%7==0)
printf("%d\n",i);
}
}
热心网友
时间:2024-11-24 05:23
#include<iostream>
using namespace std;
bool multiple(long x)
{
if((x != 0)&&(x%7 ==0))
return true;
}
bool contain(long x)
{
while(x!=0)
{
if(x%10 ==7) return true;
x/=10;
}
}
void main()
{
long N;
cin>>N;
for(long n=1;n<N+1;n++)
{
if(multiple(n)||contain(n))
cout<<n<<"\t";
}
cout<<endl;
}
热心网友
时间:2024-11-24 05:23
#include<iostream>
using namespace std;
void fun(int N)
{
int a,b,c,d;
for(int i=1;i<=N;i++)
{a=i/1000;//求千位
b=(i-a*100)/100;//百位
c=(i-a*1000-b*100)/10;//十位
d=i-a*1000-b*100-c*10;//个位
if(i%7==0||a==7||b==7||c==7||d==7)//判断是否满足是7和7的倍数或者包含7的数字
cout<<i<<" ";
}
cout<<endl;
}
int main()
{int N;
cin>>N;
fun(N);
return 0;
}追问如果是100000就不对了,能不能修改一下?
追答的确可以改,不过此种算法有最大值*,要改成100000的话,须int a,b,c,d,e,f.