发挥你的思想,解决均匀选数的问题 从一组连续的自然数中,按比例均匀的选出要的数如从1--100中,按10%的比例,均匀的选取出所要的数则所要的数,可以是1,11,21,31,41...,也可以是 2,22,,32,42...如果是70%的比例,所要的数应该是什么?要给出算法,可以找出任何比例的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给一段代码,不知道是否符合楼主要求:#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;} 不好意思,上面有误:float fOffset = 100.0f / percent; ==> float fOffset = float(end - begin) / percent; 就是等差数列,楼主没上过初中?先转换成double,求出间隔(除一下就行了),然后加起来转换为整数输出即可。 VS2010如何实现VS界面的ToolBox工具箱? 在MFC中自己写的类声明的问题 关于高亮显示网页edit框的问题! 如何取得拨号连接中modem与pc连接的端口? 急:数组问题! 求 COM技术内幕 随书光盘原码 为什么不能连接数据库 发贴感谢kingcom_xu和所有的兄弟们,大家随便拿吧(JennyVenus) 怎么设全局变量? 如何hook WM_GETTEXT消息 高分求助!ActiveX调用其它Activx控件 关于屏幕截取图像,为什么我得到的图像是桌面本身的图像,而我需要包含其他窗口的图像
{
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;
}
float fOffset = 100.0f / percent; ==> float fOffset = float(end - begin) / percent;