题目一(输出国际象棋棋盘

  分析:

用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

   主要代码: 

  for i in range(8):
    for j in range(8):
      if (i+j)%2!=0:
        print(chr(219)*2,end='')
      else:
        print(' ',end='')
    print('')

  题目二(排列组合问题)

   有1、2、3、4个数字,能组成多少个互不相同且无重复数字的四位数?都是多少?

   分析:

  我们可以先预测一下,共有24种情况。然后,可以用循环嵌套的方法,嵌套四个循环,类似 for a in range(1,5):,使数字在循环中不停变化,组合;再设定类似 a!=b 的判断条件,使其数字不能重复,最后输出符合条件的数字即可。

 主要代码:  

  for a in range(1,5):
    for b in range(1,5):
      for c in range(1,5):
        for d in range(1,5):
          if (a!=b) and (b!=c) and (c!=d) and (d!=a) and (a!=c) and (b!=d):
            print("%d%d%d%d" % (a, b, c, d))

  题目三(最小的K个数)

  输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

  分析:

  首先从键盘输入n个整数(列表输入)和k,然后临近的数字两两进行比较,按照从小到大的顺序进行交换,如果前面的值比后面的大,则交换顺序。这样一趟过去后,最小的数字被交换到了第一位;然后是次小的交换到了第二位,。。。,依次直到第k个数,停止交换。返回lists的前k个数(lists[0:k],前闭后开)。最后将结果再转成字符串输出。

  主要代码:  

  lst = list(input().split(','))
    def function(lst,k):
      length = len(lst)
      for i in range(k):
        for j in range(i+1,length):
          if lst[i] > lst[j]:
            lst[j],lst[i] = lst[i],lst[j]
      return lst[0:k]
   n=int(input())
  a=(function(lst,n))
  for x in a:
  print(x,end=',')

  

Python算法题(二)——国际象棋棋盘(排列组合问题,最小的K个数)的更多相关文章

  1. Python Tricks(二十一)—— 排列组合的计算

    使用循环: 阶乘的实现: def fac(n): r = 1. for i in range(1, n+1): r *= i return r 排列:Anm=m!n!=(m−n+1)⋯m def pe ...

  2. python算法题 python123网站单元四题目

    目录 一:二分法求平方根 二:Collatz猜想 三:算24(只考虑满足,不考虑把所有情况找出来)   下面向大家介绍几个python算法题. 一:二分法求平方根 1.题目要求为 2.输入输出格式为 ...

  3. JavaScript 二维数组排列组合2

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...

  4. JavaScript 二维数组排列组合

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...

  5. 窥探算法之美妙——寻找数组中最小的K个数&python中巧用最大堆

    原文发表在我的博客主页,转载请注明出处 前言 不论是小算法或者大系统,堆一直是某种场景下程序员比较亲睐的数据结构,而在python中,由于数据结构的极其灵活性,list,tuple, dict在很多情 ...

  6. 剑指Offer(二十九):最小的K个数

    剑指Offer(二十九):最小的K个数 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/baid ...

  7. [算法]找到无序数组中最小的K个数

    题目: 给定一个无序的整型数组arr,找到其中最小的k个数. 方法一: 将数组排序,排序后的数组的前k个数就是最小的k个数. 时间复杂度:O(nlogn) 方法二: 时间复杂度:O(nlogk) 维护 ...

  8. 算法题解:最大或最小的K个数(海量数据Top K问题)

    题目 输入 n 个整数,找出其中最小的 k 个数.例如输入4.5.1.6.2.7.3.8 这8个数字,则最小的4个数字是1.2.3.4. 初窥 这道题最简单的思路莫过于把输入的 n 个整数排序,排序之 ...

  9. 编程之法:面试和算法心得(寻找最小的k个数)

    内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...

随机推荐

  1. git 撤消修改

    第一步: 执行git reflog获取你自己的commit id(这里就是A1).当然你可以在eclipse的git插件中通过查看历史得到 第二步: 执行git reset –hard A1(这里的A ...

  2. ThinkPHP空操作与命名空间

    命名空间:相当于一个虚拟的目录 正常管理文件使用文件夹--物理区分 TP框架的初始命名空间是:ThinkPHP\Library 在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\L ...

  3. DataFactory生产手机号码

    表中的数据类型是CHAR()类型的,才会出现,如右图的“Build a composite field”的这个功能: 固定部分设置 剩余变化部分设置 操作成功 数据库查询的结果

  4. react-native关闭所有黄色警告

    写RN经常会遇到黄色警告,很无奈,很多很多的黄色警告都是由组件自己导致的,建议在index.js 内的 AppRegistry.registerComponent('shareFile', () =& ...

  5. LVS系列二、LVS集群-DR模式

    一. LVS-DR和LVS-IP TUN集群概述 1.  Direct Routing(直接路由) Director分配请求到不同的real server.real server处理请求后直接回应给用 ...

  6. Ubuntu防火墙常用命令

    Ubuntu默认防火墙安装.启用.配置.端口.查看状态相关信息 最简单的一个操作: sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回 ...

  7. Image组件的使用

    // 注意图片放置的目录问题 <Image source = {require('./img/logo.png')} style = {styles4.imageStyle}/> 注意要导 ...

  8. 10 Best Practices for Better RESTful API

    转自 http://www.cnblogs.com/mondol/p/6109024.html

  9. 关于注释【code templates】,如何导入本地注释文件

    关于如何在eclipse.myeclipse导入本地注释文件 [xxx.xml]   请看操作方式 下面是code templates文件的内容 注意  把文件中的 @@@@@@@@@@@@@@@  ...

  10. LCTF (easy-100)

    先安装跑一下,不知道为啥我这里模拟器打不开,传到手机上就可以.如下图. 一个输入框,一个按钮,随便输入提示no. 放入JEB反编译. 可以看到有6个Class.大体看一遍,b和e应该和解题无关,在类a ...