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:
    //关于错排公式,网上有很多教程的,搜几篇看看吧,我这里就不罗列了,很好理解的。
  • 相关阅读:
    移位运算符的限制
    数据类型
    正无穷和负无穷的问题
    dos下的cd指令
    c#线程的几种启动方法
    储过程实现简单的数据分页
    java 身份证15位转18位
    eclipse配置文件内存设置
    markdown语法学习
    js工具类
  • 原文地址:https://www.cnblogs.com/ibosong/p/2343446.html
Copyright © 2011-2022 走看看