hdoj 2522 A simple problem 【模拟】

题意:算出1/n的结果,循环小数只输出第一个循环节

策略:模拟1除去n即可。

判断是否是循环节只需要找到%n之后的模是否出现就好了。

代码:

#include <stdio.h>
#include <string.h>
#define M 100005
bool vis[M];
int main(){
	int t, n;
	scanf("%d", &t);
	while(t --){
		scanf("%d", &n);
		if(n == 1||n == -1){
			printf("%d", n); continue;
		}
		if(n < 0){
			n = -n;
			printf("-");
		}
		memset(vis, 0, sizeof(vis));
		int cur = 1;
		printf("0.");
		vis[1] = 1;
		while(cur){
			cur *= 10;
			printf("%d", cur/n);
			cur %= n;
			if(vis[cur]) break;
			else vis[cur] = 1;
		}
		puts("");
	}
	return 0;
}

题目链接:点击打开链接

时间: 2024-12-31 03:33:28

hdoj 2522 A simple problem 【模拟】的相关文章

HDU ACM 2522 A simple problem 模拟除法

分析:在除的过程中,当出现相同余数时即出现循环节. #include<iostream> using namespace std; bool h[100002]; void div(int x) { int t; memset(h,false,x*sizeof(h[0])+1); h[1]=true; t=1; while(t) { t=t*10; cout<<t/x; t=t%x; if(h[t]) //再次出现相同余数,表示出现循环节 break; h[t]=true; } }

HDU 2522 A simple problem

A simple problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3368    Accepted Submission(s): 1249 Problem Description Zty很痴迷数学问题..一天,yifenfei出了个数学题想难倒他,让他回答1 / n.但Zty却回答不了^_^.  请大家编程帮助他. In

HDOJ 5402 Travelling Salesman Problem 模拟

行数或列数为奇数就能够所有走完. 行数和列数都是偶数,能够选择空出一个(x+y)为奇数的点. 假设要空出一个(x+y)为偶数的点,则必须空出其它(x+y)为奇数的点 Travelling Salesman Problem Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 747    Accepted Submission(s): 272

hdoj 4971 A simple brute force problem. 【最大闭合权 --&gt; 最小割】

题目:hdoj 4971 A simple brute force problem. 题意:给出 n 个任务和 m 项技术,完成某个任务需要其中几项技术,完成某个任务有奖金,学习某个技术需要钱,技术之间有父子关系,某项技术可能需要先学习其他技术,然后问你选择做那些任务获得收益最大? 分析:看题意的黑体字部分,就是一个标准的闭合权问题,这个题目的关键忽悠点在于技术之间的关系,导致很多人想到了dp以及树形dp. 其实就是一个闭合权问题模板,官方题解说如果技术之间存在相互的关系需要缩点,其实不用缩点也

HDOJ 4974 A simple water problem

A simple water problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 173    Accepted Submission(s): 112 Problem Description Dragon is watching competitions on TV. Every competition is held be

hdoj 5349 MZL&#39;s simple problem

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5349 1 #include<stdio.h> 2 int main(){ 3 int cnt; 4 int max; 5 int N; 6 int ch; 7 while(~scanf("%d",&N)){ 8 cnt = 0; 9 while(N--){ 10 scanf("%d",&ch); 11 if(ch==1){ 12 scanf(

HDU 4974 A simple water problem 模拟(水

水题. #include <cstdio> #include <iostream> #include <queue> #include <algorithm> using namespace std; typedef long long ll; priority_queue<int> q; int main() { int T, cas = 0; scanf("%d", &T); while(T-- > 0) {

HDOJ 4972 A simple dynamic programming problem

找规律...数据可能不合法...输出0 A simple dynamic programming problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 85    Accepted Submission(s): 31 Problem Description Dragon is watching NBA. He loves Ja

mutiset HDOJ 5349 MZL&#39;s simple problem

题目传送门 1 /* 2 这题可以用stl的mutiset容器方便求解,我对这东西不熟悉,TLE了几次,最后用读入外挂水过. 3 题解有O(n)的做法,还以为我是侥幸过的,后来才知道iterator it写在循环内才超时了,囧! 4 */ 5 /************************************************ 6 Author :Running_Time 7 Created Time :2015-8-4 12:10:11 8 File Name :G.cpp 9