题目自己找
注意:此题异常坑爹
(1)当n是1或者-1要分别判断。(因为被除数是1,r不必要*10都可以除尽)
(2)当n是负数时要判断。并n=-n
(3)要注意数组的长度必须是100000,不能大不能小。否则无限TL
代码:
/*
ID: Ben biss
PROG: #####
LANG: C++
*/
#include<stdio.h>
#include <iostream>
using namespace std;
#include<cstring>
#include <fstream>
#include<cmath>
#include<string>
#include<cstdlib>
#include<algorithm>
#include<stack>
#include<vector>
#include<map>
#include<queue>
#define FOR(i,n) for(i=0;i<n;i++)
#define cmem(a) memset(a,'/0',sizeof(a))
#define imem(a) memset(a,0,sizeof(a))
//#define cin fin
//#define cout fout
int p[100000];
int main()
{
int n,i,r,j;
//ofstream fout ("#####.out");
//ifstream fin ("#####.in");
scanf("%d",&j);
while(j--)
{
scanf("%d",&n);
if(n==1)cout<<1<<endl;
else if(n==-1)cout<<"-1"<<endl;
else
{
if(n<0)printf("-"),n=-n;
printf("0.");
memset(p,0,sizeof(p));
r=1;
while(r!=0&&(p[r]==0))
{
p[r]=1;
r*=10;
printf("%d",int(r/n));//及时打印,省得又开一个数组。
r%=n;
}
printf("\n");
}
}
return 0;
}