珠海网站建设的公司哪家好,页面简洁的导航网站,百度站长网站验证,精品网名菜鸟刷题Day1
一.自守数#xff1a;自守数_牛客题霸_牛客网 (nowcoder.com)
描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如#xff1a;25^2 625#xff0c;76^2 5776#xff0c;9376^2 87909376。请求出n(包括n)以内的自守数的个数
解题思路#x…菜鸟刷题Day1
一.自守数自守数_牛客题霸_牛客网 (nowcoder.com)
描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如25^2 62576^2 57769376^2 87909376。请求出n(包括n)以内的自守数的个数
解题思路
1.对[0,n]中的每一位数进行平方以后取平方数的每一位进行判断。但是这样效率有些低因为每一个数都要取每一位来判断。
#include stdio.h
#include math.h
int main()
{int n;while(~scanf(%d, n)) {long count 0;for (int i 0; i n; i){long pow_n pow(i, 2);int tmp i;while(tmp){if (tmp%10 ! pow_n%10) break;tmp/10;pow_n/10;} if(tmp 0)count;}printf(%d\n, count);}
return 0;
}2.设一个base10如果i10了就说明i已经迈入到两位数了此时base*10。然后直接接用pow_n%base即可。也就是说一位数模十两位数就模100……
#includeiostream
#includemath.h
using namespace std;int main()
{int n0;int count0;while(cinn)//多组输入{int base10;for(int i0;in;i){long pow_npow(i,2);if(ibase)base*10;if(pow_n%basei)count;}coutcountendl; }return 0;
}二.小于N的质数个数返回小于 N 的质数个数_牛客题霸_牛客网 (nowcoder.com)
解题思路
1.编写一个质数判断函数然后对[2,n]区间内的每一个数都判断一下
2.优化可以缩小区间其实只要[2,sqrt(n)]区间内没有n的因数这个数就肯定是质数
#includestdio.h
#includemath.hint isprime(int num)
{for(int i0;isqrt(num);i){if(num%i0)return 0;}return 1;
}int main()
{int n0;int count0;while(scanf(%d,n)!EOF){for(int i2;in;i){if(isprime(i))count;}printf(%d,count);}return 0;
}三.第一个只出现一次的字符第一个只出现一次的字符_牛客题霸_牛客网 (nowcoder.com)
描述
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1需要区分大小写.从0开始计数
解题思路
这里给出一个基数排序的思想既然是字符也就是说最多只有256个数据建立一个容量为256的字符数组利用字符的ASCII码值插入到数组的相应位置然后遍历查找找到只为1的下标。
int FirstNotRepeatingChar(char* str )
{int lenstrlen(str);char arr[256]{0};for(int i0;ilen;i){//要判断一下万一是超长字符可能会溢出if(arr[str[i]]256){arr[str[i]]1;}}//数据录入完毕查找只数组元素为1的下标for(int j0;jlen;j){if(arr[str[j]]1)return j;}return -1
}四.判断字符是否唯一面试题 01.01. 判定字符是否唯一 - 力扣LeetCode
描述
实现一个算法确定一个字符串 s 的所有字符是否全都不同。
解题思路
这一题的思想和上一题一样只要数组内的所有元素内容都是1那么就说明所有的字符都是只出现一次。
class Solution
{
public:bool isUnique(string astr) {int lenstrlen(astr);char arr[256]{\0};for(int i0;ilen;i){if(arr[astr[i]]256){arr[astr[i]]1;}}//开始查找判断是否有出现两次的数据for(int j0;jlen;j){if(arr[astr[j]]1)return false;}return true;}
};