工作之余抽点间时出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下停止标记
目题接链:here~~
拟模一般的除法,当到遇经已涌现过的余数时停止,一开始余数是1本身,还要注意的是当余数乘一个10还是不大于被除数时,余数是乘10以后的余数,比如:1/99,1*10=10还是小于99,那么余10,这个余数也要标记!上面是我看到的较比好的代码:(较比以后发明第一个间时较短)
#include<iostream> #include<memory.h> using namespace std; char a[100010]; bool b[100010]; void fn(int n) { memset(b,false,sizeof(b)); if(n == 1) cout<<1<<endl; else { a[0] = '0'; a[1] = '.'; b[1] = true; int carry = 1; int j = 1, k = 2; while(carry) { carry *= 10; a[k++] = carry / n + '0'; carry = carry % n; if(b[carry]) break; b[carry] = true; } a[k] = '\0'; cout<<a<<endl; } } int main() { int n,t; cin>>t; while(t--) { cin>>n; if(n<0){n = -n; cout<<"-";} fn(n); } return 0; }
#include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; bool a[100010]; //存余数 int main() { int ncase; int num, temp; scanf("%d", &ncase); while(ncase--) { temp = 1; memset(a, 0, sizeof(a)); scanf("%d", &num); if(num < 0) printf("-0."); else printf("0."); while(a[temp] != 1 && temp != 0) { a[temp] = 1; temp *= 10; printf("%d", temp / num); temp %= num; } printf("\n"); } return 0; }
文章结束给大家分享下程序员的一些笑话语录: IBM和波音777
波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,So..”..
波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”