zoukankan      html  css  js  c++  java
  • HDOJ 1465 不容易系列之一

    // HDOJ 1465 不容易系列之一
    // @author:	bos
    // @date:	2012.2.9
    //错排问题
    #include <stdio.h>
    #include <memory.h>
    int main()
    {
    	int n;
    	_int64 f[21]= {0};				//注意这里用到C++的扩展类型_int64,表示范围更大,关于它
    	while(scanf("%d", &n)!= EOF)	//跟long或者long long的区别是请看下面的知识点。
    	{
    		memset(f, 0, sizeof(f));
    		int i;
    		f[2]= 1;
    		
    		for (i= 3; i< 21; i++)			//需从3开始
    		{
    			f[i]= (i- 1)*( f[i-1]+ f[i-2]);	//错排公式
    		}
    		printf("%I64d\n", f[n]);
    
    	}
    	return 0;
    }
    // 知识点1:
    // _int64是微软VC中对C++的扩展类型,格式控制符是%I64d,无符号是%I64u。
    // long long是G++编译器支持的64位数类型,格式控制符是%lld,无符号是%llu。
    //在OJ中,如果使用C++,你使用_int64或者long long都行,但是格式控制符必须是%I64d
    //知识点2:
    //关于错排公式,网上有很多教程的,搜几篇看看吧,我这里就不罗列了,很好理解的。
  • 相关阅读:
    Set / Map 集合 -ES6
    getter/setter
    构造函数-class类 -语法糖 -ES6
    原型链-继承
    创建对象/克隆
    Generator生成器函数- ES6
    iframe跨域访问
    setTimeout延迟加载
    adt新建项目后去掉appcompat_v7的解决方法
    PHP数组的操作
  • 原文地址:https://www.cnblogs.com/ibosong/p/2343446.html
Copyright © 2011-2022 走看看