#include
#include
#include
using namespace std;
int main()
{
int radius;
cin>>radius;
double p=atan(1.0)*4;
double area=p*radius*radius;
cout<
#include
#include
using namespace std;
int main()
{
int n;
cin>>n;
int F[n];
F[0]=0;
F[1]=F[2]=1;
if(n>=3)
{
for(int i=3;i<=n;i++)
{
F[i]=(F[i-1]+F[i-2])%10007;
}
}
cout<
#include
#include
using namespace std;
int main()
{
int n;
cin>>n;
if(n<1990||n>2050)
cout<<"no"<
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
首先这个题如果暴力手动输入也是可以的,关键在于只有32次,那么要是7-8位该如何操作呢?
int main()
{
for(int i=0;i<=31;i++)//总共执行的次数为32次
{
int a[5]={0};//设置状态将5个位全部设置为00000
int num=i;//num记录当前执行的次数
int z=0;
while(num!=0)
{
a[z]=num%2;
z++;
num/=2;
}
for(int j=4;j>=0;j--)
cout<
给出n个数,找出这n个数的最大值,最小值,和。
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
#include
using namespace std;
int main()
{
int num;
cin>>num;
int F[num];
long sum=0;
for(int i=1;i<=num;i++)
{
cin>>F[i-1];
sum=sum+F[i-1];
}
int min=F[0],max=F[0];
for(int i=1;i<=num;i++)
{
if(F[i-1]>max) max=F[i-1];
if(F[i-1]
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
#include
using namespace std;
int main()
{
int num;
cin>>num;
int F[num];
for(int i=1;i<=num;i++)
{
cin>>F[i-1];
}
int find;
cin>>find;
int x;
for(int i=1;i<=num;i++)
{
if(F[i-1]==find)
{x=i;break;
}
else x=-1;
}
cout<
#include
using namespace std;
int a[6];
int temp = 0;
int palindrome(int n)//n为判断是否为回文数
{
int i = 0,j,k;
while (n >= 1)
{
a[i++] = n % 10;
n = n / 10;
}
k = i - 1;
j = 0;
while (j < k)
{
if (a[j++] != a[k--])
return 0;
}
for (i = 0; i < 6; i++)
{
temp = temp + a[i];
}
return 1;
}
int main()
{
int n;
cin >> n;
int count = 0;
for (int i = 10000; i < 1000000; i++)
{
temp = 0;
if (palindrome(i) == 1 && temp == n)
{
cout << i << endl;
count++;
}
}
if (count == 0)
cout << "-1" << endl;
//cout << "sum=" << count << endl;
return 0;
}
//祥 3瑞 2生 辉 2三 2羊 献 气
#include
using namespace std;
int main()
{
int a[8];
for(a[0]=1;a[0]<=9;a[0]++)
{
for(a[1]=0;a[1]<=9;a[1]++)
{
if(a[0]!=a[1])
for(a[2]=0;a[2]<=9;a[2]++)
{
if(a[2]!=a[0]&&a[2]!=a[1])
for(a[3]=0;a[3]<=9;a[3]++)
{
if(a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])
for(a[4]=1;a[4]<=9;a[4]++)
{
if(a[4]!=a[3]&&a[4]!=a[2]&&a[4]!=a[1]&&a[4]!=a[0])
for(a[5]=0;a[5]<=9;a[5]++)
{
if(a[5]!=a[4]&&a[5]!=a[3]&&a[5]!=a[2]&&a[5]!=a[1]&&a[5]!=a[0])
for(a[6]=0;a[6]<=9;a[6]++)
{
if(a[6]!=a[5]&&a[6]!=a[4]&&a[6]!=a[3]&&a[6]!=a[2]&&a[6]!=a[1]&&a[6]!=a[0])
for(a[7]=0;a[7]<=9;a[7]++)
{
if(a[7]!=a[6]&&a[7]!=a[5]&&a[7]!=a[4]&&a[7]!=a[3]&&a[7]!=a[2]&&a[7]!=a[1]&&a[7]!=a[0])
{
int s=a[0]*1000+a[1]*100+a[2]*10+a[3];//上数
int x=a[4]*1000+a[5]*100+a[6]*10+a[1];
int sum=a[4]*10000+a[5]*1000+a[2]*100+a[1]*10+a[7];
if(sum==s+x)
{
cout<
给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
第一行包含一个数n,表示序列长度。
第二行包含n个正整数,表示给定的序列。
第三个包含一个正整数m,表示询问个数。
接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
对于30%的数据,n,m<=100;
对于100%的数据,n,m<=1000;
保证k<=(r-l+1),序列中的数<=106。
#include
using namespace std;
int find(int p[], int l, int r, int k)//从第l个数字开始 到第r个数字 ,第k大的数字
{
int m = r - l + 1;//需要储存 r-l+1个数字
int *newbase = new int[m];//新的数组存储查询的数字
int i, newc = 0;//newc为newbase计数器
for (i = l - 1; i> n;
int *p = new int[n];//创建长度为n的序列
for (int i = 0; i> p[i];
}
//find(p, 1, 5, 2);
int m;//m为询问次数
cin >> m;
int count = 0;//查询次数计数器
int *q = new int[m];//创建m个单元存储返回结果
for (count = 0; count> l >> r >> k;//传入参数
q[count] = find(p, l, r, k);//查询m次
}
for (int i = 0; i
#include
using namespace std;
//入对
//出队,并输出
//计算个数并输出
class queue
{
public:
queue();
~queue();
void push(int &n);
int pop();
int length();
bool empty();
private:
int *m_base;
int m_front;
int m_rear;
int m_size;
int m_length;
};
queue::queue()
{
m_front = m_rear=0;
m_size = 100;
m_base = new int[100];
}
queue::~queue()
{
delete []m_base;
}
int queue::length()
{
if (m_length>=0)
return m_length;
else
return -1;
}
void queue:: push(int &n)
{
m_base[m_rear] = n;
m_rear = (m_rear + 1) % m_size;
m_length++;
}
int queue::pop()
{
if (empty() == true)
return -1;
int p;
p = m_front;
m_front = (m_front + 1) % m_size;
--m_length;
return m_base[p];
}
bool queue::empty()
{
if (m_front == m_rear)return true;
else
return false;
}
int main()
{
int N;
cin >> N;//队列执行
int i;//循环次数
int cmd;//指令
queue que;
int *b = new int[N];//存储指令
int *Num = new int[N];//存储数据
int num;//入队的数
for (i = 0; i < N; i++)
{
cin >> cmd;
b[i] = cmd;
if (cmd == 1)
{
cin >> num;//
Num[i] = num;
}
else if(cmd==2||cmd==3)
Num[i] = 0;
}
for (i = 0; i < N; i++)
{
if (b[i] == 1)
{
que.push(Num[i]);
}
else if (b[i] == 2)
{
int z;
z = que.pop();//不能利用que.pop()判断因为每出现一次就会执行一次pop()出队
if (z >= 0)
cout << z << endl;
else
cout << "no" << endl;
}
else if(b[i] == 3)
{
cout << que.length() << endl;
}
}
return 0;
}
#include
#include
using namespace std;
int main()
{
string num;//输入待转换的十六进制
cin >> num;
int size = num.size();//得到数组的长度
if (size>8||num=="FFFFFFFF")//判断是否越界长度越界以及超过最大十六进制的数字
return 0;
int i,j;//循环变量i
int count = 0;
long long sum=0,z=0;//十进制数字
for (i = size-1,count=0; i>=0,count第一个表示待转换的数据从小到大(从右到左)第一个用来记录当前是幂的数字
{
if (num[i] >= 'A'&&num[i] < 'Z')//如果是大于10的数字
{
long long z= num[i] - 'A' + 10;//当前字母的数字//由于是8位十六进制数字可能存在数据类型越界所以使用 long long 的数据类型 long long 是64位存储 然而int 是32位存储
for (j=0;j对数据的幂指数进行处理计算
}
sum = sum + z;//数据统计求和
}
else// !!!!!必须是else 如果是else if(num[i]>=0&&num[i]<=9)计算结果等于0
{
z = num[i]-'0';
for (j = 0; j
#include
using namespace std;
int f(int m,int n)
{
if(m>m>>n;
cout<