从一组连续的自然数中,按比例均匀的选出要的数
如从1--100中,按10%的比例,均匀的选取出所要的数
则所要的数,可以是1,11,21,31,41...,也可以是 2,22,,32,42...
如果是70%的比例,所要的数应该是什么?要给出算法,可以找出任何比例的

解决方案 »

  1.   

    给一段代码,不知道是否符合楼主要求:#include <stdio.h>void select(int begin, int end, int percent)
    {
    float fOffset = 100.0f / percent;
    float val = begin;
    int n = 0;
    while(val <= end)
    {
    printf("%d ", (int)(val + 0.5f));
    n++; val += fOffset;
    } printf("\nn = %d\n", n);
    }int main(int argc, char* argv[])
    {
    select(1, 100, 70);
    return 0;
    }
      

  2.   

    不好意思,上面有误:
    float fOffset = 100.0f / percent; ==> float fOffset = float(end - begin) / percent;
      

  3.   

    就是等差数列,楼主没上过初中?先转换成double,求出间隔(除一下就行了),然后加起来转换为整数输出即可。