这道c++题怎么做!(求各位大神给c语言代码大全可复制【文字形式,方便复制{^_^}】)?


JAVA写的,能看懂不?package coinsChange;public class CoinsChange {/*** values[]:保存每一种硬币的币值的数组* valuesLength:币值不同的硬币种类数量,即values[]数组的大小* money:需要找零的面值* coins[]:保存面值为y的纸币找零所需的最小硬币数* cents:一分的硬币* * 算法分析:* 当求解总面值为 i 的找零最少硬币数 coinsUsed[ i ] 时,将其分解成求解 coinsUsed[ i – cents]* 和一个面值为 cents 元的硬币,由于 i – cents < i , 其解 coinsUsed[ i – cents] 已经存在,* 如果面值为 cents 的硬币满足题意,那么最终解 coinsUsed[ i ] 则等于 coinsUsed[ i – cents] 再加上 1(即面值为 cents)的这一个硬币。* @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//硬币面值预先已经按降序排列int[] coinValue=new int[]{11,7,5,1};//需要找零的面值
int money=20; //保存每一个面值找零所需的最小硬币数,0号单元舍弃不用,所以要多加1int[] coins=new int[money+1];int[] coinsChange=new int[money+1];for(int i=1;i<=money;i++){coins[i]=0;coinsChange[i]=0;}CoinsChange c=new CoinsChange();c.Change(coinValue, coinValue.length, money, coins, coinsChange);}public void Change(int[] values,int valuesLength,int money,int[] coins,int[] coinsChange){coins[0]=0;int last=0;//对每一分钱都找零,即保存子问题的解以备用,即填表for(int cents=1;cents<=money;cents++){//当用最小币值的硬币找零时,所需硬币数量最多
int minCoins = 999;
//遍历每一种面值的硬币,看是否可作为找零的其中之一
for(int length=0;length<valuesLength;length++) {
//若当前面值的硬币小于当前的cents则分解问题并查表 if(values[length]<=cents){int temp=coins[cents-values[length]]+1;if(temp<minCoins){minCoins=temp;last=length;}}}//保存最小硬币数coins[cents]=minCoins;coinsChange[cents] = values[last];
System.out.print("面值为 :" + (cents) + "的最小硬币数 : "+coins[cents]);
System.out.print(" 硬币为:");
trackPrint(cents, coinsChange);
System.out.println();
}}private void trackPrint(int cents, int[] coinsChange) {// TODO Auto-generated method stubif(cents==0){
return;
}else {
System.out.print(coinsChange[cents]+" ");
trackPrint(cents-coinsChange[cents], coinsChange);
}
}}

1004.StupidTotal:30Accepted:2TimeLimit:2secMemoryLimit:256MBDescriptionXiaomingisanin...
1004. Stupid
Total:
30 Accepted: 2 Time Limit: 2sec
Memory Limit:256MB DescriptionXiaoming is an intern of M company. He always reads the program written by his colleagues to fix bugs. But he found some of the programs are really stupid. As a smart guy, how can he bear this? There is an example below. How ugly it is! Maybe you can help him to rewrite this function.int Stupid(int A[maxn],int B[maxn],int n){int i,j,ans=0;for(i=0;i<n;i++){if(A[i]==B[i]) continue;ans++;for(j=i;j<n;j++){if(A[j]==B[j]&&A[j]!=B[i]) break;A[j]=B[i];}}return ans;}InputThe first line contains an integer n indicating the length of arrays.(n≤100000)The second line contains n 32-bit integers of array A.The third line contains n 32-bit integers of array B.Multiple inputs. Process to the end of file.OutputFor each case, output Stupid(A,B,n) on a single line.Sample InputCopy sample input to clipboard 60 0 0 0 0 01 2 1 2 1 2Sample Output4
展开
选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP

实验内容:输入成绩,计算并显示平均成绩。运行效果:输入3门课程的成绩:69.58090.5平均成绩:80.00退出否?y实验说明:上述显示效果中,下划线数字为用户的输入。...
实验内容:输入成绩,计算并显示平均成绩。运行效果:输入3门课程的成绩:69.5 80 90.5平均成绩:80.00退出否?y实验说明:上述显示效果中,下划线数字为用户的输入。当退出否不为y,则重复。初学C语言编程是一个充满挫折的艰难历程,特别是在使用scanf,printf进行数据的输入输出上常常容易出错,挫伤了初学者的积极性。可以使用C++的控制台输入输出流cin、cout 取代scanf,printf,出错机会大为减少,而又更容易理解,cin理解为键盘,cout理解为屏幕。使用方法:1.包含iostream头文件,指定std名空间 2.用>>从cin输入数据,用<<向cout输出数据显示,不必考虑输入输出的数据类型,当同时多个数据输入时,用空格来分隔其多个数据,回车接受输入.例: #include "stdafx.h"#include <iostream>using namespace std;int main(int argc, char* argv[]){int a;cin>>a; /* 等价 scanf("%d",&a); */cout<<a<<endl; /* 等价 printf("%d\n",a); */return 0;}目的要求:熟悉控制台输入输出, for、while、do循环语句的使用。
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP

我要回帖

更多关于 c语言代码大全可复制 的文章

 

随机推荐