小编sre*_*ond的帖子

计算两个不同数字的倍数之间的差异

这是一个算法问题.为了简单起见,我说我有两个双打,A和B.我想构建一个函数,它会给我差异,直到A的下一个倍数或B的下一个倍数,如果这有意义的话.

例如,假设A是3而B是5.

考虑倍数:(3,6,9,12,15)和(5,10,15).

我希望函数输出:(3,2,1,3,1,2,3),因为它需要3个单位才能达到3,然后再多达2个到达5,然后是1到6,然后是3到9等...

我希望这是有道理的.理想情况下,它是一个Python-esque生成器(虽然我在Arduino~C++中编写它).我需要快速 - 非常快.

真的很感激任何帮助.我的伪代码在下面,但它不是那么好.

a = 3
b = 5

current = 0
distToA = a
distToB = b
for i in xrange(100):
  if distToA > distToB: #B comes first
    print "Adding {0}".format(distToB)
    current += distToB
    distToA -= distToBb
    distToB = b
  elif distToB > distToA: #A comes first
    print "Adding {0}".format(distToA)
    current += distToA
    distToB -= distToA
    distToA = a
  else: #Equal
    print "Adding {0}".format(distToA)
    current += distToA #Arbitrarily, could be distToB
    distToA = a …
Run Code Online (Sandbox Code Playgroud)

c++ python algorithm

9
推荐指数
1
解决办法
989
查看次数

C 将 struct dirent * 转换为 FILE *

我正在用 C 编写一个文件浏览器,它使用等效的 ls 和 cd 来让用户导航文件系统并选择一个文件。一切正常 - 我可以让用户选择一个struct dirent *代表他们想要选择的文件的目录条目。但是,我想在我的程序中打开这个文件,我知道如何做到这一点的唯一方法是通过fopen(FILE* fptr). 有没有办法可以将 a 转换struct dirent *为 a FILE*?Astruct dirent有一个属性ino_t d_fileno,它指的是“文件序列号” - 与文件描述符相同吗?我可以使用该文件描述符打开一个FILE*?

c filesystems file-io dirent.h

2
推荐指数
1
解决办法
3324
查看次数

标签 统计

algorithm ×1

c ×1

c++ ×1

dirent.h ×1

file-io ×1

filesystems ×1

python ×1