Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 钞票计划_C++ - Fatal编程技术网

C++ 钞票计划

C++ 钞票计划,c++,C++,我正在解决一个问题: URI在线法官| 1018-钞票 在这个问题中,您必须读取一个整数,并计算可能分解值的最小注释数。这些音符是100、50、20、10、5、2e1。打印读取的值和注释列表 输入 输入文件包含整数N(0N; 国际纸币=100; if(NTrue(N)){ 而(钞票!=0){ 如果(钞票==25) 钞票=20; 多少(N,钞票); N=N%的钞票; 钞票=钞票/2; } } 返回0; } 布尔恩图(国际北){ 如果(0

我正在解决一个问题:

URI在线法官| 1018-钞票

在这个问题中,您必须读取一个整数,并计算可能分解值的最小注释数。这些音符是100、50、20、10、5、2e1。打印读取的值和注释列表

输入

输入文件包含整数N(0 输出

打印所需的最小数量的钞票,如给定示例所示

我尝试了以下解决方案:

#include <cmath>
#include <iomanip>
#include <iostream>

using namespace std;

bool NTrue(int n);
void HowMany(int x, int BankNote);

int main(int argc, char ** argv) { 
    int N;
    cin >> N;
    int BankNote = 100;
    if (NTrue(N)) { 
        while (BankNote != 0) { 
            if (BankNote == 25)
                BankNote = 20;  
            HowMany(N, BankNote); 
            N = N % BankNote;
            BankNote = BankNote / 2;
        }
    }
    return 0;
}

bool NTrue(int n) {
    if (0 < n && n <= pow(10, 6))
        return true;
    else
        return false;
}

void HowMany(int x, int BankNote) {
    int result = x / BankNote;
    float BN = BankNote;
    cout << result << " nota(s) de R$ " << fixed << setprecision(2) << BN << endl;
}
#包括
#包括
#包括
使用名称空间std;
布尔恩图(国际n);
作废多少(整数x,整数钞票);
intmain(intargc,字符**argv){
int N;
cin>>N;
国际纸币=100;
if(NTrue(N)){
而(钞票!=0){
如果(钞票==25)
钞票=20;
多少(N,钞票);
N=N%的钞票;
钞票=钞票/2;
}
}
返回0;
}
布尔恩图(国际北){

如果(01,00
而不是
1
。这里的逗号字符应该是十进制浮点分隔符

我猜当在线评委运行您的程序时,它会得到
1.00
。分数所用的字符取决于区域设置;在线评委可能使用不同的区域设置,因此它使用点字符(
)作为分隔符

尝试显式打印
.00
部件:

void HowMany(int x, int BankNote) {
    int result = x / BankNote;
    cout << result << " nota(s) de R$ " << result << ",00" << endl;
}
作废多少(整数x,整数钞票){
int结果=x/钞票;
难道不能这样吗

#include <algorithm>
#include <iostream>
#include <vector>
#include <cstdlib>

int main(int nargc, char* argv[]) {
  int n = atoi(argv[1]);

  int arr[] = {100,50,20,10,5,2,1};
  std::vector<int> notes (arr, arr + sizeof(arr) / sizeof(arr[0]) );

  std::cout << n << std::endl;
  for( int i = 0; i < notes.size(); i++ ) {
    int b = n/notes[i];
    if ( b > 0 ) { std::cout << b << " " << notes[i] << " bills " << std::endl; }
    n = n%notes[i];
  }

  return 0;
}
#包括
#包括
#包括
#包括
int main(int nargc,char*argv[]{
int n=atoi(argv[1]);
int arr[]={100,50,20,10,5,2,1};
标准::向量注释(arr,arr+sizeof(arr)/sizeof(arr[0]);

std::cout此时您的问题不清楚。请重新格式化。在这里很难识别问题。您最好重新粘贴代码,检查,指南也很有用。@Tim我已经整理了更多,现在应该可以管理了,我想。@H.Scorpe-回到实际问题。您做错的是没有运行您的co在调试器中执行de,如果您这样做了,您可以单步执行代码,观察if语句的作用以及各种变量中的值,很快您就会找到它没有达到预期效果的地方,您可以修复它。然后重复执行,直到它起作用。如果遇到问题,请返回此处并准确解释问题所在,变量值是什么等等,我们将尽最大努力提供帮助。这可能是对这个问题最合理的解释。是的,即使是这样,我确信这是我的第一个答案,我会在现场工作后再次尝试。thnx for u r help:我尝试过,但相同:(我会在早上问我们的主管,并随时通知你