硬币翻转倍数递增试算

//有何不足或者问题希望能够得到各位的多多指正,不胜感激   


import java.util.Scanner;

/**
 *
 * @author cc 举例 100枚硬币,最初全部朝下,第一次将所有硬币反转过来, 第二次反转位置是2的倍数的硬币,
 *         第三次反转3的倍数,.....执行一百次,问最终共有多少个硬币面朝上?
 *
 *         1.硬币正反使用数组 1、0表示,1表示正面,0表示反面;
 *
 *
 *         100枚硬币的结果
int[] ==  1100100001000000100000000100000000001000000000000100000000000000100000000000000001000000000000000000
	 result coin about 1 nums = 10
 */
public class CoinTurn {

	private static int[] intCoins;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int coinNum = inputNum();
		intCoins = new int[coinNum];

		/*
		 * 初始化
		 */
		for (int i = 0; i < intCoins.length; i++) {
			intCoins[i] = 0;// 初始化全部朝下,即背面0
		}

		doTurnCoin();

		int resutltCoin = getCoinNum();

		System.out.println("result coin about 1 nums = " + resutltCoin);// 输出最终正面朝上的个数

	}

	private static void doTurnCoin() {
		/*
		 * 翻转操作
		 */
		for (int i = 1; i < intCoins.length; i++) {// 确定倍数

			for (int j = i - 1; j < intCoins.length; j++) {// 循环翻转
				if (j % i == 0) { // 硬币序列数是当前次数的倍数,则翻转
					if (intCoins[j] == 0) {
						intCoins[j] = 1;
					} else {
						intCoins[j] = 0;
					}
				}

			}
		}
	}

	private static int getCoinNum() {
		int countNum = 0;// 记录最终硬币正面个数
		StringBuffer strB = new StringBuffer();
		for (int a : intCoins) {
			strB.append(a + "");
			if (1 == a)
				countNum++;
		}
		System.out.println("int[] ==  " + strB);// 输出数组的结果
		return countNum;
	}

	/*
	 * coin number
	 */
	private static int inputNum() {
		System.out.println("input coin num: ");
		Scanner input = new Scanner(System.in);
		return input.nextInt();
	}

}
时间: 2024-09-22 09:48:48

硬币翻转倍数递增试算的相关文章

Java硬币翻转倍数递增试算实例_java

//有何不足或者问题希望能够得到各位的多多指正,不胜感激 复制代码 代码如下: import java.util.Scanner; /** *  * @author cc 举例 100枚硬币,最初全部朝下,第一次将所有硬币反转过来, 第二次反转位置是2的倍数的硬币, *         第三次反转3的倍数,.....执行一百次,问最终共有多少个硬币面朝上? *  *         1.硬币正反使用数组 1.0表示,1表示正面,0表示反面: *          *          *    

100万台服务器 亚马逊副总裁试算微软IT成本

在WPC2013大会上,http://www.aliyun.com/zixun/aggregation/10438.html">微软CEO鲍尔默宣称微软在世界各地的数据中心的服务器数量加起来超过100万台,Google的规模更大,而Amazon规模稍微小一些. 作为全球IT行业的巨头,微软自己在IT方面投入的成本有多少?既然有了100万台服务器这么一个数字,其他自然也就可以算得出来了. Amazon副总裁James Hamilton很有兴致的针对这个数字做了一个估算.在采购成本方面,如果每

java的自动递增和递减运算符

和C类似,Java提供了丰富的快捷运算方式.这些快捷运算可使代码更清爽,更易录入,也更易读者辨读. 两种很不错的快捷运算方式是递增和递减运算符(常称作"自动递增"和"自动递减"运算符).其中,递减运算符是"--",意为"减少一个单位":递增运算符是"++",意为"增加一个单位".举个例子来说,假设A是一个int(整数)值,则表达式++A就等价于(A = A + 1).递增和递减运算符结果

C++递增(增量)运算符重载的思考

在前面的章节中我们已经接触过递增运算符的重载,那时候我们并没有区分前递增与后递增的差别,在通常情况下我们是分别不出++a与a++的差别的,但的确他们直接是存在明显差别的. 先看如下代码: #include <iostream>using namespace std; int main(){ int a=0; ++(++a);//正确,(++a)返回的是左值 (a++)++;//错误,(a++)返回的不是左值 system("pause");} 代码中(a++)++编译出错误

翻转页面网页导航发展的几个特点

不知道这算不算新瓶装老酒,实际上翻转页面导航并不算一个新的理念,在之前就有网站用过,不过一直没有火起来,不知道会不会像AJAX一样重新获得新的认可? 在UItrends上看到一个新的导航趋势的应用:翻转页面导航.其实这个早期一直是photoshop表现视觉效果的手法,就像kate曾经提到过的,这种效果仅仅用来代表视觉隐喻,没有什么实际内容.  早期由于这种设计只有一种固定的模式,缺乏动态效果,另外冗余的样式对页面的加载速度也有不小的影响,其应用并不广泛.后来随着带宽的提升和web应用的多样化,这

奥运二房东不好当看"奥运人家"标准算投入成本

2008年的北京奥运会,不仅为企业提供了很多的发展机会,也给京城老百姓带来了商机,尤其是奥运场馆附近的居民. 奥运会期间,接待境内外观众将为北京短租市场带来巨大的市场需求.由此而诞生的家庭旅馆,自然成为其中的有益补充. 但是,经过几个月的市场运作,问题也接踵而来. 盲目:为出租而求租 记者走访了奥运场馆周边的房屋中介公司,发现10~30天的短期出租房源盛行,租金大都按天计算,60平方米左右的一居室,每天租金在1000元左右.这个价格几乎等于该房屋平时一个月租金的2/3. 从目前市场反映情况看,这

每天敲两个代码-C源程序100例(加油)

编译命令 gcc 1.c -o 1 (-std=c99) gcc 3.c -lm -o 3 ./1 地址: http://fightingyanping.blog.163.com/blog/static/116572703201162633134771/ http://blog.csdn.net/zaojiahua/article/details/8684523 2014.2.28 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填

华人健康网善用发挥云端平台的灵活与成本效益

「对我们而言,方便比价格更重要.尤其网友的喜好很善变,我们还在摸索中,很难预测哪则新闻会造成流量遽增,Windows Azure 不同于传统 IDC 制式且定型化的服务内容,在高可用性和投资成本的表现最好,最能满足我们对方便的需求.」华人健康网 总经理 林佳庆 华人健康网提供最完整 14 大新闻分科.专业的医疗保健信息,以及最热门的发烧话题,合作对象包括 Yahoo! 奇摩.MSN 台湾.ETtoday 东森新闻云.yam 蕃薯藤.新浪网.巨亨网等知名入口网站.造访华人健康网的不重复使用者(Un

跟锦数学2016年

(161231) 已知函数 $f(x)$ 的反函数是 $\varphi(y)$, 写出用 $f',f'',f'''$ 表示 $\varphi'$, $\varphi''$, $\varphi'''$ 的表达式.   (161230) 设 $\sed{a_n}$ 递减趋于零, 试证: $$\bex \vsm{n}\f{a_n}{n}<\infty\lra a_n=O\sex{\f{1}{\ln n}},\ \vsm{n}(a_n-a_{n+1})\ln n<\infty. \eex$$   (1