运算模拟的典范

是否存在一个多位数(多于1位),它的各位数字相同,同时它的

平方数的各位数字也相同。任何进制数字都行。

设计的思路:

把十进制数字按除p取余数转化为p进制数,设置g,p循环,把十进制

g及其平方数s先后转化为p进制数字,同时设置两个标示量t1和t2并且赋值为0

首先把数字g按照除p取余转化为p进制数字,如果该p进制数字存在两位不同,则标注为t1=1

如果p进制数字各位数字都相同保留t1=0

如果t1=0,把数字g的平方数字s转化为p进制数字,如果存在其中的两位数字不同,就标注为t2=1,

否则保留t2 = 0

检测t1=0且t2=0打印数字

package MantissaForword;

public class Main {

	private static int p;
	private static int e, c, g, d1, d2, t1, t2;
	private static long s;

	public static void main(String[] args) {
		for(p=2;p<=99;p++){
			for(g = p+1;g<=9999;g++){

				s = g*g;
				d1 = g;
				e = d1%p;
				d1 = d1/p;
				t1=0;
				while(d1 > 0){
					c = d1%p;
					d1 = d1/p;
					if(c != e){
						t1 = 1;
						break;
					}
				}
				if(t1 ==0){
					d2 = (int)s;
					e = d2 % p;
					d2 = d2/p;
					t2 = 0;
					while(d2 > 0){
						c = d2%p;
						d2 = d2/p;
						if(c != e){
							t2 = 1;
							break;
						}
					}
				}
				if(t1 == 0&& t2 == 0){//满足条件
					System.out.printf("在%d进制中:",p);
					d1 = g;
					while(d1 > 0){
						c = d1%p;
						d1 = d1/p;
						if(c<10){
							System.out.printf("%d",c);
						}else{
							System.out.printf("[%d]",c);
						}
					}

					System.out.println("^2=");
					while(s>0){
						c = (int)s%p;
						s = s/p;
						if(c<10){
							System.out.printf("%d",c);
						}else{
							System.out.printf("[%d]",c);
						}
					}

				}

			}
		}

	}

}

  

时间: 2024-10-25 13:37:53

运算模拟的典范的相关文章

hdu 3257 Hello World!(位运算 &amp; 模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3257 Hello World! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 476    Accepted Submission(s): 180 Problem Description Your task is to print ...

大整数运算---模拟笔算

/* *m=a[k]×10k-1+a[k-1]×10k-2+-.+a[2]×10+a[1] *其中a[0]保存该长整数的位数. * *模拟笔算 */ #include<iostream> #include<cstring> using namespace std; #define SIZE 255 void getl(char* n);//获取长整数 void prt(char* n);//打印长整数 int cmp(char* n1, char* n2);//比较长整数大小 vo

类型转换、运算符、位运算符【以及原码、反码、补码】

1.类型转换 php中的‘+’与js有区别,php中+只是算术运算符[更偏向转化为数字].js更偏向转化为字符串 php本身的自动转换类型便符合大多数对类型的处理.[也有强制转换的情形出现] [注意转换关系:字符串转换成数字类型,开头的那部分字符串能够转化为数字(还要判断浮点型和整型)] 2.转换成布尔型[实现流程控制的关键] 以下值为false: (1)布尔值为false (2)整型值为0 (3)浮点型为0.0 (4)空字符串[字符串'0'(相当于是字符串做数组时是一个空字符串),区别,注意‘

BNDM 算法

最近在研究一些字符串匹配算法,也是由于工作上的需要,强力推荐一本书<柔性字符串匹配>,一本很好的书.网上可以随时搜索到.还是说正题吧. BNDM算法的思想来源于BDM算法思想,类似于shitf-and和kmp之间的区别吧(也不知道是不是准确,有错望大家多指点).前者都是用位运算模拟后者.好了,那就先介绍一下BDM算法吧! BDM是基于子串搜索方法,其难点在于怎么搜索子串,书中引入了后缀自动机.对于后缀自动机,我其实没有足够的把握理解它,姑且就当它为一个工具就是了,提供一些状态跳转罢了.现在简单

Java多线程学习之线程的状态及中断线程

线程的状态 新建(new):当线程被创建时,它只会短时间处于这种状态.它已经分配了必要的系统资源,完成了初始化.之后线程调度器将把这个线程转变为可运行或者阻塞状态: 就绪(Runnable):在这种状态下,只要调度器分配时间片给线程,线程就可以运行了: 阻塞(Blocked):有某个条件阻止线程运行,调度器将忽略阻塞状态的线程,不会分配时间片给它,直到线程进入就绪状态,它才有可能执行: 死亡(Dead):处于死亡或者终结状态的线程将不再是可调度的,并且也不会被分配到时间片.任务死亡的方式通常是从

关系代数 (数据库)

关系代数 (数据库) http://zh.wikipedia.org/wiki/%E5%85%B3%E7%B3%BB%E4%BB%A3%E6%95%B0_(%E6%95%B0%E6%8D%AE%E5%BA%93) 关系代数是一阶逻辑的分支,是闭合于运算下的关系的集合.运算作用于一个或多个关系上来生成一个关系.关系代数是计算机科学的一部分. 在纯数学中的关系代数是有关于数理逻辑和集合论的代数结构. 目录 [隐藏] 1 介绍 2 原始运算 2.1 集合运算 2.2 投影 (π) 2.3 选择 (σ)

【leetcode74】Sum of Two Integers(不用+,-求两数之和)

题目描述: 不用+,-求两个数的和 原文描述: Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Example: Given a = 1 and b = 2, return 3. 方法一:用位运算模拟加法 思路1: 异或又被称其为"模2加法" 设置变量recipe模拟进位数字,模拟加法的实现过程 代码: public class Solutio

高吞吐量系统设计优化建议(全文已经发表在IBM开发者论坛)

原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-system-design-optimization/ 高吞吐量系统 举一个例子,我们做项目需要安排计划,每一个模块可以由多人同时并行做多项任务,也可以一个人或者多个人串行工作,但始终会有一条关键路径,这条路径就是项目的工期.系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间.关键路径由 CPU 运算.IO.外部系统响应等等组成. 对于一个系统的用户来说,

多进程网络服务

1.高性能网络服务程序 Linux的一个应用优势是可用于设计各种高性能网络服务程序,高性能的一个特点就是实现并发访问处理,及同时为多个在线用户提供服务:多进程网络服务.多线程网络服务.线程池网络服务: 2.多进程网络服务 :利用Linux系统中的父子进程关系为多用户提供并发服务,是一种比较流行的并发服务技术,其基本理念是:来一个用户,启动一个服务进程.若有新连接到来,则启动子进程与其交互,服务结束后,其子进程自动退出. 模型如下: 3.代码实现: 用一个整数的运算模拟多进程的网络服务. (1).