这样我们随便找一种就行了,我们可以这样想:
对于每一枚硬币,如果这枚硬币翻转奇数次的话,那么他就变成反面朝上了,由于n是偶数,我们可以将每一枚硬币都翻转n-1次,即可满足题目要求.由于每次翻转都要翻转n-1枚硬币,所以可以翻转n次,对于每一次,都有一枚硬币不翻转
程序如下:
var n,i,j:longint
a:array[1..500] of longint
begin
read(n)
writeln(n)
for i:=1 to n do begin
for j:=1 to n do if i<>j then
if a[j]=0 then a[j]:=1 else a[j]:=0
for j:=1 to n do write(a[j])
writeln
end
end.
以下是源代码:#include <stdio.h>
int Arrange(int n)//返回兑换方案
{
int oneCount=0//1分硬币的数量
int twoCount=0//2分硬币的数量
int fiveCount=0//5分硬币的数量
int moneyCount=n*100//总金额元化成分
int count=0//兑换方案数
for(oneCount=0oneCount<=moneyCount/1oneCount++)
for(twoCount=0twoCount<=moneyCount/2twoCount++)
for(fiveCount=0fiveCount<=moneyCount/5fiveCount++)
if(oneCount*1+twoCount*2+fiveCount*5==moneyCount)
{
count++
printf("%d元可兑换成%d个1分硬币和%d个2分硬币和%d个5分硬币。\n",n,oneCount,twoCount,fiveCount)
}
return count
}
void main()
{
int n=0
printf("请输入金额:\n")
scanf("%d",&n)
printf("以下是兑换方案:\n")
printf("兑换方案共有%d种。\n",Arrange(n))
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)