编程题:
小明去买橙子,水果店只能提供整袋购买,有每袋6个和每袋8个的包装(包装不能拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。请根据此实现一个程序,要求如下:
输入一个整数n,表示小明想要买n(1<=n<=100)个橙子
输出一个整数表示最少需要的袋数,如果不能恰好买n个橙子,则输出-1
示例:输入20,输出3
方法一:(c++)
#include <iostream> using namespace std; int main() { int n; cin>>n; for(int i = n / 8; i >= 0; i--) { if(0 == (n - i * 8) % 6) { cout<<i + (n - i * 8) / 6 <<endl; return 0; } } cout<<"-1"<<endl; return 0; }
方法二:(c)
#include<stdio.h> int main(){ int i,j,g; printf("橙子个数:\n"); scanf("%d",&m); for(i=m/8;i>=0;i--){ if(0==(m-8*i)%6){ g=i+(m-8*i)/6; printf("%d\n",g); return g; } } printf("-1\n"); }
方法三:(JavaScript)
function sun(val){ var i=parseInt(val/8); for(i;i>=0;i--){ if(0===(val-8*i)%6){ return i+(val-8*i)/6; } } return -1; } sun(20);