寒假10 简单数学

寒假10 简单数学_第1张图片

#include
using namespace std;
#include
#include
int f(char ch)
{
	if (int(ch) >= 48 && int(ch) <= 58)
	{
		return ((int(ch)) - 48);
	}
	else
	{
		return ((int(ch)) - 55);
	}
}
char f2(int n)
{
	if (n <= 9)return char(n+48);
	else
	{
		return char(n + 55);
	}
}
int main()
{
	int a;
	string str;
	int b;
	cin >> a;
	cin >> str;
	cin >> b;
	int sum = 0;
	int l = str.length();
	stacks;
	for (int i = 0;i < l;i++)//1   2   3   4
	{//
		sum *= a;
		sum += f(str[i]);
	}
	//cout << sum << endl;
	while (sum)
	{
		s.push(f2(sum % b));
		sum /= b;
	}
	while (!s.empty())
	{
		cout << s.top();
		s.pop();
	}
	return 0;
}

 寒假10 简单数学_第2张图片

#include
#include 
using namespace  std;
int main()
{
	int x;
	scanf("%d", &x);
	int z = 0;
	for (int i = 1; i <= x; i++)
	{
		int y;
		scanf("%d", &y);
		z ^= y;
	}
	printf("%d", z);
	return 0;
}

 寒假10 简单数学_第3张图片

#include
using namespace std;
int arr1[32];
int ans[32];
int qian[16];
int hou[16];
int main()
{

	int n;
	cin >> n;
	int flag = 31;
	while (n)
	{
		arr1[flag] = (n % 2);
		flag--;
		n /= 2;
	}
	for (int i = 0;i < 16;i++)
	{
		ans[i] = arr1[i + 16];
		ans[i + 16] = arr1[i];
	}
	long long res = 0;
	for (int i = 0;i < 32;i++)
	{
		//cout << ans[i];
		res *= 2;
		res += ans[i];
	}
	cout << res;
	return 0;
}

 寒假10 简单数学_第4张图片

#include
using namespace std;
#include
int arr[55];
int main()
{
	int n;
	cin >> n;
	long long  ans = 1;
	for (int i = 1;i <= n;i++)
	{
		cin >> arr[i];
	}
	sort(arr + 1, arr + n + 1);
	int flag = 0;
	for (int i = 1;i<=n;i++)
	{
		if (arr[i] - flag < 1)
		{
			ans = 0;
			break;
		}
		ans *= (arr[i] - flag);
		flag++;
		if (ans >= 1000000000 + 7)
		{
			ans %= (1000000000 + 7);
		}

	}
	cout << ans << endl;
	return 0;
}

 寒假10 简单数学_第5张图片

 

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
using namespace std;
int  x[1000010];
int  y[1000010];
int main()
{
	int n, g;
	cin >> n >> g;
	for (int i = 1;i <= g;i++)
	{
		scanf("%d%d", &x[i], &y[i]);
	}
	sort(x + 1, x + g + 1);
	sort(y + 1, y + g + 1);
	long long xx = 0;
	long long yy = 0;
	for (int i = 1;i <= g;i++)
	{
		if (i == 1)
		{
			xx++;
			yy++;
		}
		else
		{
			if (x[i] != x[i - 1])xx++;
			if (y[i] != y[i - 1])yy++;
		}
	}
	//cout << xx << " " << yy;
	long long ans = (xx * yy) + ((n - yy) * xx) + ((n - xx) * yy);
	cout << ans << endl;
	return 0;
}

寒假10 简单数学_第6张图片 

#define _CRT_SECURE_NO_WARNINGS 1
#include
using namespace std;
int arr[1000010];
int main()
{
	int n, q;
	cin >> n >> q;
	int flag = 1;
	for (int i = 1;i <= n;i++)
	{
		if (i == 1)continue;
		else if ( i == 2)
		{
			arr[flag] = i;
			flag++;
		}
		else
		{
			int flag2 = 0;
			for (int j = 2;j * j <= i;j++)
			{
				if (i % j == 0)
				{
					flag2 = 1;
					break;
				}
			}
			if(flag2==0)
			{
				arr[flag] = i;
				flag++;
			}
		}
	}
	int que;
	for (int i = 1;i <= q;i++)
	{
		scanf("%d", &que);
		printf("%d\n", arr[que]);
	}
	
	return 0;
}

 寒假10 简单数学_第7张图片

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
using namespace std;
bool su[100000010];
int ans[6000010];
int flag = 0;
void f(int n)
{
	memset(su, 1, sizeof(su));
	su[1] = 0;
	for (int i = 2;i <= n;i++)
	{
		if (su[i])
		{
			ans[++flag] = i;
			for (int j = 1;j <= flag && i * ans[j] <= n;j++)
			{
				
				su[i * ans[j]] = 0;  //i= ans[j]*i
				
			}
		}
	}
}
int main()
{
	
	int n, g;
	cin >> n >> g;
	f(n);
	int h;
	for (int i = 1;i <= flag;i++)
	{
		cout << ans[i] << " ";
	}
	return 0;
}
//#include 
//#include 
//
//bool isPrime[100000010];
isPrime[i] == 1表示:i是素数
//int Prime[6000010], cnt = 0;
Prime存质数
//
//void GetPrime(int n)//筛到n
//{
//	memset(isPrime, 1, sizeof(isPrime));
//	//以“每个数都是素数”为初始状态,逐个删去///
//	isPrime[1] = 0;//1不是素数///
//
//	for (int i = 2; i <= n; i++)
//	{
//		if (isPrime[i])//没筛掉 
//			Prime[++cnt] = i; //i成为下一个素数///
//
//		for (int j = 1; j <= cnt && i * Prime[j] <= n/*不超上限*/; j++)
//		{
//			//从Prime[1],即最小质数2开始,逐个枚举已知的质数,并期望Prime[j]是(i*Prime[j])的最小质因数
//			//当然,i肯定比Prime[j]大,因为Prime[j]是在i之前得出的
//			isPrime[i * Prime[j]] = 0;
//
//			if (i % Prime[j] == 0)//i中也含有Prime[j]这个因子
//				break; //重要步骤。见原理
//		}
//	}
//}
//
//int main()
//{
//	int n, q;
//	scanf("%d %d", &n, &q);
//	GetPrime(n);
//	for (int i = 1;i <= cnt;i++)
//	{
//		cout<< Prime[i]<<" ";
//	}
//	return 0;
//}

 

 

你可能感兴趣的:(算法,c++,数据结构)