输出一个循环周期后就结束该数的输出1/7=0.142857n为2到50,如何顺序输出1/n的十进制表示的字符串(写出一个循环节为止)
11条回答 默认 最新
- 云霏阳 2015-12-09 04:07关注
算法思路: 1)1/n的循环周期不会超过n;2)当余数重复时,循环周期就出现了。参考下面代码:
int main(void)
{
char flag[50];
int b;
int c;
int i;for(i = 2; i <= 50; i ++) { memset(flag, 0, sizeof(flag)); printf("1/%d = 0.", i); c = 10; while(1) { printf("%d", c/i); b = c % i; if(!b || flag[b]) { break; } flag[b] = 1; c = b * 10; } printf("\n"); } return 0;
}
下面是节选的测试结果:
1/43 = 0.0232558139534883720930
1/44 = 0.0227
1/45 = 0.02
1/46 = 0.02173913043478260869565
1/47 = 0.02127659574468085106382978723404255319148936170
1/48 = 0.02083
1/49 = 0.0204081632653061224489795918367346938775510
1/50 = 0.02解决 4无用
悬赏问题
- ¥15 请问这个是什么意思?
- ¥15 STM32驱动继电器
- ¥15 Windows server update services
- ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
- ¥15 模糊pid与pid仿真结果几乎一样
- ¥15 java的GUI的运用
- ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
- ¥15 怎么配置广告联盟瀑布流
- ¥15 Rstudio 保存代码闪退
- ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?