本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中
N
是用户传入的参数。如果N
满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);return 0;
}/* 你的代码将被嵌在这里 */
输入样例:
105 500
输出样例:
cnt = 6
思路分析:
本题的话,首先得要确定这个数是不是完全平方和数(若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。)确定了之后,我们需要比较这个数的位数之间是否存在至少两个相同的数,这就需要一一去比较,首先我们将每个位数给存储起来,可以用数组形式,然后去循环比较即可。
解题代码如下:
int IsTheNumber(const int N)
{int n = N; //由于N被const了,故赋值给另一个可被改动的变量int t, b, c,k=0;t = sqrt(n);int isprime = 0;int a[10] = { 0 };if (t * t == n) {while (n > 0) {c = n % 10;a[k] = c;k++;n = n / 10;}for (b = 0; b < k; b++) {for (int x = 0; x < k; x++) {if (a[b] == a[x] && b != x) {isprime = 1;}}}}return isprime;
}
后面我也看了网上其他同学的解答,发现他们很多都用多个返回感觉有点不太合适唉,不遵循单一出口原则。有些大佬代码要简单许多,他们不像我将所有位数的数字一一存储,而是直接将数字记录的同时直接记录数字相等的个数,这点很高明,后面就只需要一个for循环加一个if条件就可以了。可以学习这种技巧 a[x]++,如x1,x2相同就加1,不相同就存储。
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。相关推荐
- 判断任一给定整数N是否满足条件: 它是完全平方数,又至少有两位数字相同,如144、676等。
/* 判断任一给定整数N是否满足条件: 它是完全平方数,又至少有两位数字相同,如144.676等. */ #include <stdio.h> #include <math.h> ...
- 本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。
本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数. 函数接口定义: void PrintN ( int N ); 其中N是用户传入的参数.该函数必须将从1到N的全部正整数顺序打印出来, ...
- 本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符
本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符 函数接口定义: char *match( char *s, c ...
- 本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离。
本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离. 函数接口定义: double dist( double x1, double y1, doub ...
- 本题要求实现一个函数,对给定平面任意两点坐标(x 1 ,y 1 )和(x 2 ,y 2 ),求这两点之间的距离。
函数接口定义: double dist( double x1, double y1, double x2, double y2 ); 其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, ...
- (PAT)统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数
本题要求实现一个函数,统计给定区间内的三位数中有两位数字相同的完全平方数(如144.676)的个数. 函数接口定义: int search( int n ); 其中传入的参数int n是一个三位数的正 ...
- 6-1 简单快速排序分数 10作者 唐艳琴单位 中国人民解放军陆军工程大学本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据
6-1 简单快速排序 分数 10 全屏浏览题目 切换布局 作者 唐艳琴 单位 中国人民解放军陆军工程大学 本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x) ...
- 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。
本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 函数接口的定义 int Count_Digit ( const int N, cons ...
- 统计个位数字 (本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3)
5.本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 实现代码: int Count_Digit ( const int N, cons ...
最新文章
- Android手机指令操作释疑
- device.cpp
- 乌鲁木齐计算机老师待遇,如果月薪超过10000元,安排去新疆当教学教师,愿意吗?...
- 026_JavaScript数组排序
- 使用结构体的形式使一个函数返回多个数据
- Swagger 2——异常[Illegal DefaultValue null for parameter type integer]解决方案
- 初学Linux应掌握的Shell命令
- 关于商品分类 商品表和属性表的设计
- 从零开始实现 ASP.NET Core MVC 的插件式开发(九) - 如何启用预编译视图
- 【线段树】Frog Traveler(CF751D)
- 循环队列CircleQueue的使用
- 用友nc操作手册_铁军人物汤轩宇, 入职两年,她用努力和汗水编制出单户试算操作手册...
- 2020年python工资一般多少-2020届毕业生874万,这个岗位月薪2万竟无人问津...
- 拓端tecdat|Matlab用BUGS马尔可夫区制转换Markov switching随机波动率SV模型、序列蒙特卡罗SMC、Metropolis Hastings采样分析时间序列数据
- 数学建模算法与应用_CORDIC算法详解(三) CORDIC 算法之线性系统及其数学应用...
- 古代汉语(王力版)笔记 通论8-9
- 【雕虫小技第8篇】scratch编程技巧之源码中的图片素材资源导出!
- js配合css3开发流畅的web拾色器功能
- 给老年人“种草”,是不是一门好生意?
- 颜色的前世今生13·RGB显色系统详解(下)
热门文章
- IDOC--关于ALE、IDOC的文章收集
- 科学计算机按次方怎么在按括号,如何使用多功能计算器?
- 在Mac环境下的NEO4J的下载与配置
- spring依赖注入原理详解
- python mysql数据库长连接_python 连接mysql数据库
- X210之uboot源码分析
- SSM毕设项目郑州市智慧农贸市场管理系统3ncz2(java+VUE+Mybatis+Maven+Mysql)
- 离散制造业ERP系统实施难点
- 数据科学与机器学习导论
- python实现xmind转excel_使用Python将xmind脑图转成excel用例(一)