精华内容
下载资源
问答
  • 判断N!阶乘末尾0的个数

    千次阅读 2018-06-01 11:12:22
    10的个数,我们就可以判断出0的个数,如果N!=K*10^n,K是不能被10整除的数,那么我们可以根据n就可以得到0的个数,考虑10的个数,我们必须对N!进行质因数的分解,N!=(2^x)*(3^y)(5^z)...........,由于2*5=10,所...

    如果我们要判断出0的个数,如果我们直接求N!那么数据会很大,数据可能溢出

    那么为了得到0的个数我们知道可以从10的角度进行判断,如果我们知道N!中10的个数

    我们就可以判断出0的个数,


    如果N!=K*10^n,K是不能被10整除的数,那么我们可以根据n就可以得到0的个数,

    考虑10的个数,我们必须对N!进行质因数的分解,N!=(2^x)*(3^y)(5^z)...........,由于2*5=10,

    所以n只与x和z相关,

    于是n=min(x,z),我们可以判断出x的个数必然大于z的个数,因为被2整除的数的频率大于被5整除的数的频率高,

    所以n=z;


    下面我们要判断出N1中5的个数,

    因为N!=N*N-1*N-2*N-3.......................................

    所以我们要判断出5的个数,我们可以对每个N,N-1,N-2,进行判断,就可以得到5的个数了

    判断5的个数代码:

    1. <span style="font-size:18px;">#include<iostream>  
    2. using namespace std;  
    3.   
    4. int main()  
    5. {  
    6.     int a = 100;  
    7.     int num = 0;  
    8.     for (int i = 1; i <= a; i++)  
    9.     {  
    10.         int j = i;  
    11.         while (j % 5 == 0)  
    12.         {  
    13.             num++;  
    14.             j = j / 5;  
    15.         }  
    16.     }  
    17.     cout << num << endl;  
    18.     system("pause");  
    19.     return 0;  
    20. }</span>  

    我们还可以用另一种方法进行5的个数进行求解:

    z=N/5+N/25+N/5^3+....................

    知道N/5^k为0;

    代码:

    1. <span style="font-size:18px;">#include<iostream>  
    2. using namespace std;  
    3.   
    4. int main()  
    5. {  
    6.     int a = 100;  
    7.     int num = 0;  
    8.     while (a)  
    9.     {  
    10.         num += a / 5;  
    11.         a = a / 5;  
    12.     }  
    13.     cout << num << endl;  
    14.     system("pause");  
    15.     return 0;  
    16. }</span>  


    展开全文
  • bool check(int n); using namespace std; int main() { int num; cin>>num; int i; if (check(num)) cout没重复"; else cout重复了"; return 0; } //判断是否有重复的数字 bool check(int num)
    #include <iostream>
    bool check(int n);
    using namespace std;
    int main()
    {
    	int num;
    	cin>>num;
    	int i;
    	if (check(num)) cout<<"没重复"<<endl;
    	else cout<<"重复了"<<endl; 	
    	return 0;
    }
    //判断是否有重复的数字
    bool check(int num)
    {
    	int v[10]={0};//肯定是10,因为只有10个数字(0123456789),超过十个位的数字 肯定是有数字重复的 
    	int i,sum=0,c=0; 
    	while (num>0)
    	{
    		v[num%10]=1;//若有重复,则会在v数组的同一个元素处重复赋值1,这样 数组v的元素的总和就会比位数少 
    		num=num/10;
    		c++;//c用来计算位数 
    	}
    	for (i=0;i<10;i++)
    		sum+=v[i];//计算数组v元素的总和 
    	return (sum==c)?true:false;// 如果sum==c,即没有重复数字,返回true,否则返回false 
    }

    展开全文
  • 判断二进制最低位1的位置,我们判断N!质因子2的个数就可以: 2的个数的判断等于N/2+N/4+N/8+............................. 代码: 二进制右移一位相当于除以2; int num(int N) { int num=0; while(N) {...

    判断二进制中最低位1的位置,我们判断在N!中质因子2的个数就可以:

    2的个数的判断等于N/2+N/4+N/8+.............................

    代码:

    二进制右移一位相当于除以2;

     int num(int N)
    {
    int num=0;
    while(N)
    {
    N>>=1;
    num+=N;
    }
    }


    展开全文
  • 算法 - 判断一个数是不是2的n次幂

    万次阅读 多人点赞 2019-02-26 10:31:24
    分享一个大牛的人工智能教程。...首先判断X是否为0,如果为0则不是2的n次幂,返回。 将X和X-1进行按位“与”操作,如果结果是0,则说明这个数是2的n次幂;如果结果非0,则说明这个数不是2的n次幂。 ...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 

    设要判断的数是无符号整数X。

    首先判断X是否为0,如果为0则不是2的n次幂,返回。

    将X和X-1进行按位“与”操作,如果结果是0,则说明这个数是2的n次幂;如果结果非0,则说明这个数不是2的n次幂。

    展开全文
  • 正整数n的各位数字是否包含数字3...// 判断整数n的各位数字是否包含数字3或4 bool Valid(int n) { if(1<=n&&n<=9) { if(n==3||n==4) { return true; } else { return false; } } els...
  • 判断二进制数据n位是否为1

    千次阅读 2019-05-07 18:38:20
    N:待判断的二进制数 B:待判断的位(右往左) 结果:((N>>(B-1))&1
  • 介绍一个判断3D中N个点共线的方法

    千次阅读 2009-08-08 22:01:00
    本文介绍一种判断3D中N个点共线的方法。算法基本思想是:以第一个点和最后一个点的向量为基准向量,分别计算中间N-2个点到该向量中的距离,如果该距离中的最大值小于某一给定的阈值则这些点共线,否则不共线。下面的...
  • iOS-判断字符串是否只含有\n

    千次阅读 2015-09-10 14:02:51
    一个字符串,只有\n\n\n,通过str.length是不能判断出来的,这个时候str.length=3,所以就要通过以下的方法。  NSString *tempStr = @"\n";   BOOL isAllEnter = YES;   for (int i = 0; ilength; i++...
  • 这个算法比较简单,关键在于你怎么判断一个正整数是不是质数。这里用的方法是,用小于它的正整数去除它,如果余数有0出现,那说明它是质数,反之,它不是质数。关键在于,你这个小于它的整数取到哪里,其实取到它的...
  • Python中判断一个三位数是不是水仙花数 从控制台输入一个三位数,如果是水仙花数就打印“是水仙花数”,否则打印“不是水仙花数” 例如:153=1^3 + 5^3 + 3^3 这样的就是水仙花数 num = int(input(&amp;quot;请...
  • 1、判断是否有/n字符,不是回车符,是否把/n替换成空字符 if (aaa.indexOf("\\n") >= 0) { alert(aaa + " 有\n"); } 2、判断是否有/n回车符,是否把/n替换成空字符 va
  • 比如得到随机字符串后,我想判断第二个字符是不是"B",第三个字符是不是"C"。
  • #其他参数还有-n,-n判断一个变量是否是否有值 if [ ! -n "$myVar" ]; then echo "$myVar is empty" exit 0 fi  沃建设#each_day_file_processed_number /home/unicomlabs/*_bak5/log/log_*  for ...
  • 可以使用位运算来判断。 &amp;是位的与运算符,是指二进制数按位“与”的操作, 逻辑与就是两者都为真的时候...如果想判断十进制数 d 的二进制第n位是否是1,应该用以下的数m来进行&amp;运算 m = 1 &...
  • #include int main() {  int i,a,w,n;  for(w=1;w  scanf("%d,%d",&a,&n);  for(i=2;i  if(a%i==0)break;  if(i  else printf("yes\n");}  return 0; }
  • 斐波那契数列的数是不可能组成三角形的。 而我们只要在这些数列里面加一个数就可以有一个三角形可以组成 有了这个原因我们就可以写一个非常快速就可以判断出结果的函数。 如果题目限制了N个整数的数据大小不能...
  • 方法1: 这里涉及一个&amp;的知识点,&amp;是按位与,就是在一位...=1这一句,将n左移一位,这样当n中所有的”1”位都移出时,就跳出循环了 { if((n&amp;1)==1) //这句逐个通过位与的方式查看当前...
  • 请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 每一行的数字都从左到右排序 每一行的第一个数字都比上一行最后一个数字大 例如: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16...
  • /*计算N个整数所有奇数的和,同时实现一个判断奇偶性的函数。*/ #include<stdio.h> #define N 10 //判断奇偶性 int even(int); //奇数和 int OddSum(int [],int); void main() { int a[N],i,n,flag,sum; ...
  • 写一个函数,判断0到n中的素数的个数;比如:0-100,也可以0-100000的任意范围。具体函数声明为:void is_prime(n);#include &lt;stdio.h&gt; #include &lt;math.h&gt; int prime(int n){ int i ; ...
  • 判断是否为2的n次幂
  • 描述:从n个数选取m个数,计算m个数的和s,判断剩余n-m个数是否存在等于s的数,如果存在,输出最大值。第一行输入n和m值,第二行输入n个数,输出最大值。例如:输入:6 2 1 2 5 3 7 4输出:7分析:1+2=3;2+5=7...
  • 给定的程序,函数fun的功能是:判断形参a所指的N*N(规定Nw为奇数)的矩阵是否是幻方,若是,函数返回值为0,幻方的判定条件是:矩阵每行、每裂、主对角线以及反对角线上元素之和都相等。 #include #define N...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,487
精华内容 12,594
关键字:

判断中n