C语言:蓝桥杯-立方尾不变

立方尾不变

有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,…

请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。

请提交该整数,不要填写任何多余的内容。
答题思路:

  1. 首先这道题没有对时间和内存做要求,所以可以采用穷举法,当然了肯定是越简单越好。
  2. 由于10000内正整数的立方是一个很大的数,所以要用long long 类型来保存。
  3. 比如说25的立方为15625,这个数就满足题的要求。25是一个两位数,我们只需要取出15625的后两位,来与25比较,判断是否相等。相等满足题的要求,则记录下来
#include<stdio.h>
int main()
{
	long long n,s=0;
	for(n=1;n<10000;n++)
	{
		if(n<10){
			if(n*n*n%10==n) s++; 
		}else if(n<100){
			if(n*n*n%100==n) s++;
		}else if(n<1000){
			if(n*n*n%1000==n) s++;
		}else if(n<10000){
			if(n*n*n%10000==n) s++;
		}
	}
	printf("%d",s);
	return 0;
}
### 关于蓝桥杯B组历年C语言真题 对于寻找蓝桥杯B组往年的C语言真题,网络资源确实存在一定的稀缺性。然而,有专门的文章系列致力于分享这些宝贵的资料[^1]。 #### 2012年至2022年部分年度的真题概览 - **2012年第三届**至**2022年第十三届**期间每年均设有针对不同编程能力层次的比赛项目,其中包含了多个涉及基础算法、数据结构以及实际应用问题解决的任务。 - 特定年份的具体题目内容涵盖了从简单的数学运算到复杂的逻辑推理等多个方面,旨在全面考察参赛者的计算机科学基础知识掌握情况及其运用所学知识解决问题的能力。 #### 示例代码片段展示 下面给出一段来自某一年度竞赛中关于三国士兵作战模拟的问题解答示例: ```c #include <stdio.h> int main() { int n; scanf("%d", &n); int A[n], B[n], C[n]; int maxEvents = -1; int X = 0, Y = 0, Z = 0; for (int i = 0; i < n; ++i) { scanf("%d %d %d", &A[i], &B[i], &C[i]); X += A[i]; Y += B[i]; Z += C[i]; if ((X > Y + Z) || (Y > X + Z) || (Z > X + Y)) { maxEvents = i + 1; } } printf("%d\n", maxEvents); return 0; } ``` 这段代码实现了对给定时间内三个国家之间兵力变化情况进行分析,并找出最早出现一方势力远超其他两方的时间点[^2]。 另一个例子则是有关特殊性质整数筛选的小程序,它展示了如何通过计算立方值来验证某个范围内满足特定条件(即其立方后的各位数字排列顺序不变)的自然数数量: ```cpp #include <bits/stdc++.h> using namespace std; typedef long long LL; bool check(LL x) { LL res = x * x * x; while(x) { if((x%10) != (res%10)) return false; x /= 10; res /= 10; } return true; } int main() { int cnt = 0; for(LL i=1; i<=10000; ++i) if(check(i)) cnt++; cout << cnt << endl; return 0; } ``` 上述实例不仅体现了C/C++语言的强大功能,同时也反映了比赛中常见的命题方向之一——利用高效算法快速处理大规模数据集并得出结论[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值