poj1426 Find The Multiple(c语言巧解)
| Time Limit: 1000MS | Memory Limit: 10000K | |||
| Total Submissions: 36335 | Accepted: 15194 | Special Judge | ||
Description
Input
Output
Sample Input
2
6
19
0
Sample Output
10
100100100100100100
111111111111111111
----------------------------------------------------------------------------------------------------------------------
关于我的想法 很多同学的算法是在结果不超过long long的取值范围的情况下得到的答案,而题目却说可能存在100位的数,明显大部分同学利用了这个题目的漏洞解出这个题目 下面我介绍一种每个输出都为100位数的方法,先用深度搜索,创建一个只含0和1的数组,再用check()函数检查这个数组是不是可以除尽n,可以则为结果 关于check()
将数组从99到0分别提取出来,再加上上一位残留的余数*10,模n,余数存起来留给下一位,直到0位的时候余数为0,也就是除尽了。 这个检查函数的原理与我们自己手写算一个数除以另一个数类似,最后一位除尽,表示这个数可以除尽。
#include <stdio.h>
#include <stdlib.h>
int len[],n,bo;
int check()//检查数组是否可以除尽
{
int i,y=;
for(i=;i>=;i--)
y=((len[i]+y)%n)*;
if(y==)//余数为零
return ;
else
return ;
}
int dfs(int x)
{
int i;
if(bo)return;//得到了结果
if(x<)//到了数组的底
{
if(check())
bo=;
return;
}
for(i=;i>=;i--)//从1到0计算更快,否则容易超时
{
if(bo)return;//得到了结果
len[x]=i;
dfs(x-);
}
}
int main()
{
int i;
while(scanf("%d",&n)==&&n)
{
bo=;
dfs();
for(i=;i>=;i--)
printf("%d",len[i]);
printf("\n");
}
return ;
}
poj1426 Find The Multiple(c语言巧解)的更多相关文章
- C语言程序设计100例之(16):巧解算式
例16 巧解算式 问题描述 在1.2.3.4.5.6.7.8.9.10个数中间加上加号或减号,使得到的表达式的值为自然数N,如果中间没有符号,则认为前后为一个数,如1 2 3认为是一百二十三(123 ...
- z3 巧解CTF逆向题
z3 巧解逆向题 题目下载链接:http://reversing.kr/download.php?n=7 这次实验的题目为Reversing.kr网站中的一道题目. 题目要求: ReversingKr ...
- 原来Github上的README.md文件这么有意思——Markdown语言详解(sublime text2 版本)
一直想学习 Markdown 语言,想起以前读的一篇 赵凯强 的 博客 <原来Github上的README.md文件这么有意思——Markdown语言详解>,该篇博主 使用的是Mac系统, ...
- # 「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程)
「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程) 题链 题意:n条边n个节点的连通图,边权为两个节点的权值之和,没有「自环」或「重边」,给出的图中有且只有一个包括奇数个结点的环 ...
- POJ1426——Find The Multiple
POJ1426--Find The Multiple Description Given a positive integer n, write a program to find out a non ...
- Java Web----EL(表达式语言)详解
Java Web中的EL(表达式语言)详解 表达式语言(Expression Language)简称EL,它是JSP2.0中引入的一个新内容.通过EL可以简化在JSP开发中对对象的引用,从而规范页面 ...
- 大牛针对零基础入门c语言详解指针(超详细)
C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以 十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考 ...
- Floyd算法(一)之 C语言详解
本章介绍弗洛伊德算法.和以往一样,本文会先对弗洛伊德算法的理论论知识进行介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现. 目录 1. 弗洛伊德算法介绍 2. 弗洛伊德算法图解 3 ...
- Dijkstra算法(一)之 C语言详解
本章介绍迪杰斯特拉算法.和以往一样,本文会先对迪杰斯特拉算法的理论论知识进行介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现. 目录 1. 迪杰斯特拉算法介绍 2. 迪杰斯特拉算法 ...
随机推荐
- Django电商项目---完成用户中心(订单中心+收货地址)day7
完成用户中心(收货地址) df_user/views.py df_user/urls.py templates/df_user/user_center_site.html 界面显示 完成用户中心(全部 ...
- 【PAT】B1060 爱丁顿数(25 分)
逻辑问题,对我来说还是挺有难度的,一开始想不通 我输入数据并以数据为下标,数据出现次数为内容存储 然后从后遍历计算所有大于当前下标的元素出现的次数 最后遍历一遍确定是否为爱丁顿数,如果大于当前已经找到 ...
- STL set简单用法
set的常见用法详解 set翻译为集合,是一个内部自动有序并且不含重复元素的容器. 可以用于去掉重复元素,或者元素过大,或者不能散列的情况,set只保留元素本身而不考虑它的个数. 头文件:#inclu ...
- 探索哪个进程使磁盘I/O升高
如果生产环境中磁盘使用率突然升高,却不知道因为哪个应用程序导致的,这个时候我们可以使用pidstat命令来查看,比如 Linux .el7.x86_64 (ip.ec2.internal) _x86_ ...
- Linux防火墙基础与编写防火墙规则
Iptables采用了表和链的分层结构,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,raw表,mangle表,nat表,filter表,每个表容器内包括不同的规则链,根 ...
- Django学习---笔记一
一. 新建虚拟机在虚拟中完成项目 1.新建虚拟机 mkvirtalenv 虚拟机名称 2.进入虚拟机 cd 新建的虚拟机名称 3.安装Django pip install django 4.Dj ...
- Linux 小知识翻译 - 「Unix」和「兼容Unix的OS」
经常有人会问「Linux和Unix有什么区别?」,「Linux就是Unix吗?」. 回答一般都是「Linux是仿照Unix而开发的OS」,「Linux和Unix相似但不是一种OS」之类的. 关于「Li ...
- 字符串之StringBuffer 与 StringBuilder的对比
StringBuilder 和 StringBuffer是高度类似的两个类 StringBuilder是StringBuffer的版本改写,下面从几个方面简单的对比下他们的区别 原文地址:[十四]基础 ...
- Java-栈的学习(字符串的反转)
StackX类 public class StackX{ private int maxSize; private char StackArray[]; private int top; public ...
- 控件_TimePicker
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view ...