c语言,编写模拟翻硬币得程序。

c语言,编写模拟翻硬币得程序。,第1张

#include<stdio.h>

int main(void)

{

int n//读入一个数,为结束的次数

int i

int a[10]//10个硬币

int biaoji = 0//当这个标记能被3或7整除,说明恰好数了3次或7次

scanf("%d", &n)

for (i = 0i <10i++) //将硬币都初始化为正面的状态,即1

a[i] = 1

biaoji = 1//因为a[]的下标不允许桐态岁超过9,故要重置

a[biaoji - 1] = !a[biaoji - 1]//改变硬币的状态

for (i = 0i <10i++)

printf("%d", a[i])

return 0

}

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按闭雀照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接 *** 作,因此既能够用于局睁开发系统程序,也可用于开发应用软件。

这题显然在线不可做,神运孝我们考虑离线,将所有 *** 作保悄掘存下来,并且差分,把一次[l,r]取反变成两次[0,l-1]和[0,r]取反,记录在数组里,因为取两次反和不取反是一样的,且取反先后顺序没有影响,这样我们从0开始往后扫,扫到一个端点时,如果它之后(包括它自己)有偶数次 *** 作,continue,否则将它游稿和上一端点之间的位置取反。每个位置只会被取反一次所以是O(n)的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8253787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存